在Flutter或Dart中,await
关键字通常需要应用于返回Future的异步操作的语句。这样做可以等待异步操作完成并获得结果。
以下是一些示例代码,展示了await
在不同情况下的使用方法:
await
等待异步获取数据的操作:Future fetchData() async {
await Future.delayed(Duration(seconds: 2)); // 模拟异步操作
return 'Hello, World!';
}
void main() async {
String data = await fetchData();
print(data); // 输出:Hello, World!
}
await
等待网络请求的结果:import 'dart:convert';
import 'package:http/http.dart' as http;
Future fetchData() async {
var url = Uri.parse('https://api.example.com/data');
var response = await http.get(url); // 发起网络请求
var data = jsonDecode(response.body);
return data['message'];
}
void main() async {
String data = await fetchData();
print(data); // 输出网络请求返回的数据
}
await
等待多个异步操作的完成:void main() async {
Future fetchNumber() async {
await Future.delayed(Duration(seconds: 2));
return 42;
}
Future fetchString() async {
await Future.delayed(Duration(seconds: 3));
return 'Hello, World!';
}
int number = await fetchNumber();
String string = await fetchString();
print('Number: $number, String: $string');
}
请注意,在使用await
时,需要将包含await
语句的函数标记为async
,以便能够使用await
关键字。