asynchronous - 在特定时间等待 future

您将如何在特定的时间内等待 future 的响应?

说,我们在关闭 http 请求之前发出一个 http post 请求并等待它的响应,但是,我们只等待 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.timeout方法

final result = await Future.value(42).timeout(const Duration(seconds: 3));

https://stackoverflow.com/questions/52672137/

相关文章:

string - Flutter:是否可以仅在传递给文本小部件之前在字符串中格式化(粗体、斜体等)?

dart - 根据条件添加小部件

android - Flutter:如何让外部应用程序打开文件(如Android的隐式 Intent

flutter - 如何使用flutter firebase_ml_vision插件实时读取字符或条

android - 如何在 Flutter 中使用设备的默认字体?

dart - 如何在 flutter 图像选择器中将图像添加到 Firestore

ios - 如何在 Flutter 中实现可滚动的 Canvas ?

firebase - 如何使用 flutter 删除 Firebase 存储文件?

animation - 如何为 Sprite 设置动画以移动到 flutter 的任意点?

dart - 带有命名路线的 flutter 持久导航栏?