當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Dart Future.any用法及代碼示例


dart:async 庫中Future.any 方法的用法介紹如下。

用法:

Future<T> any<T>(
   Iterable<Future<T>> futures   
)

返回 futures 中第一個未來的結果以完成。

返回的future 以futures 中第一個future 的結果完成,以報告它是完整的,無論是帶有值還是錯誤。所有其他期貨的結果都被丟棄。

如果futures 為空,或者如果沒有一個future 完成,則返回的future 永遠不會完成。

例子:

void main() async {
  final result =
      await Future.any([slowInt(), delayedString(), fastInt()]);
  // The future of fastInt completes first, others are ignored.
  print(result); // 3
}
Future<int> slowInt() async {
  await Future.delayed(const Duration(seconds: 2));
  return 2;
}

Future<String> delayedString() async {
  await Future.delayed(const Duration(seconds: 2));
  throw TimeoutException('Time has passed');
}

Future<int> fastInt() async {
  await Future.delayed(const Duration(seconds: 1));
  return 3;
}

相關用法


注:本文由純淨天空篩選整理自dart.dev大神的英文原創作品 any<T> method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。