一尘不染

等待未来的特定时间

flutter

您将如何等待特定时间段内的将来响应?

假设我们发出了一个http发布请求,并在关闭http请求之前等待其响应,但是,我们只等待了3秒钟,否则我们关闭了该请求。

您将如何实现?

就像是

Future makePostReq() async{
  ....

  await http response for 3 secs

  ....

 if(response) {
  ... Do something with it
 }

 Http.close

}

阅读 229

收藏
2020-08-13

共1个答案

一尘不染

您可以使用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));
2020-08-13