等待未来的特定时间
问题内容:
您将如何等待特定时间段内的将来响应?
假设我们发出了一个http发布请求,并在关闭http请求之前等待其响应,但是,我们只等待了3秒钟,否则我们关闭了该请求。
您将如何实现?
就像是
Future makePostReq() async{
....
await http response for 3 secs
....
if(response) {
... Do something with it
}
Http.close
}
问题答案:
您可以使用Future.any
构造函数来创建竞争条件
final result = await Future.any([
Future.value(42),
Future.delayed(const Duration(seconds: 3))
]);
您也可以使用Future.timout
方法
final result = await Future.value(42).timeout(const Duration(seconds: 3));