異步函數(shù)
- JavaScript中,異步調(diào)用通過Promise來實(shí)現(xiàn)
- async函數(shù)返回一個(gè)Promise虱歪。await用于等待Promise
- Dart中银还,異步調(diào)用通過Future 來實(shí)現(xiàn)
- async函數(shù)返回一個(gè)Future,await用于等待Future
- Future詳情
then
import 'package:http/http.dart' as http;
import 'dart:convert';
Future getIPAddress() {
final urls = 'https://httpbin.org/ip';
return http.get(urls).then((response) {
// print(response.body);
String ip=jsonDecode(response.body)['origin'];
return ip;
});
}
void main(){
getIPAddress()
.then((ip) => print('$ip'))
.catchError((error)=>print(error));
}
async
import 'package:http/http.dart' as http;
import 'dart:convert';
Future getIPAddress() async {
final urls = 'https://httpbin.org/ip';
final response = await http.get(urls);
String ip = jsonDecode(response.body)['origin'];
return ip;
}
void main() async {
try {
final ip = await getIPAddress();
print(ip);
} catch (error) {
print(error);
}
}