dart:async
庫中Future.wait
方法的用法介紹如下。
用法:
Future<List<T>> wait<T>(
Iterable<Future<T>> futures,
{bool eagerError = false,
void cleanUp(
T successValue
)?}
)
等待多個期貨完成並收集它們的結果。
返回一個 future,一旦所有提供的 future 都完成,它就會完成,或者帶有結果,或者如果任何提供的 future 失敗,則返回一個錯誤。
返回的未來的值將是所有值的列表,這些值按照通過迭代 futures
提供的期貨的順序生成。
如果任何未來以錯誤完成,則返回的未來以該錯誤完成。如果進一步的期貨也以錯誤完成,則這些錯誤將被丟棄。
如果eagerError
為真,則返回的future 會在一個future 出現第一個錯誤時立即完成並出現錯誤。否則所有的futures必須在返回的future完成之前完成(仍然有第一個錯誤;其餘的錯誤被靜默刪除)。
在錯誤的情況下,cleanUp
(如果提供)將在成功期貨的任何非空結果上調用。這使得 cleanUp
資源可能會丟失(因為返回的未來不提供對這些值的訪問)。如果沒有錯誤,則不使用cleanUp
函數。
對cleanUp
的調用不應拋出。如果是這樣,則錯誤將是未捕獲的異步錯誤。
例子:
void main() async {
var value = await Future.wait([delayedNumber(), delayedString()]);
print(value); // [2, result]
}
Future<int> delayedNumber() async {
await Future.delayed(const Duration(seconds: 2));
return 2;
}
Future<String> delayedString() async {
await Future.delayed(const Duration(seconds: 2));
return 'result';
}
相關用法
- Dart Future.whenComplete用法及代碼示例
- Dart Future.doWhile用法及代碼示例
- Dart Future.any用法及代碼示例
- Dart Future.value用法及代碼示例
- Dart Future.catchError用法及代碼示例
- Dart Future.error用法及代碼示例
- Dart Future.timeout用法及代碼示例
- Dart Future.sync用法及代碼示例
- Dart Future.delayed用法及代碼示例
- Dart Future用法及代碼示例
- Dart FutureExtensions.onError用法及代碼示例
- Dart Function.apply用法及代碼示例
- Dart FileList.first用法及代碼示例
- Dart FileList.length用法及代碼示例
- Dart File用法及代碼示例
- Dart Finalizer.attach用法及代碼示例
- Dart Float32List.view用法及代碼示例
- Dart FileSystemEntity用法及代碼示例
- Dart FileSystemEntity.resolveSymbolicLinks用法及代碼示例
- Dart Finalizable用法及代碼示例
- Dart File.renameSync用法及代碼示例
- Dart Float32x4List.sublist用法及代碼示例
- Dart Finalizer用法及代碼示例
- Dart FileSystemEntity.resolveSymbolicLinksSync用法及代碼示例
- Dart FileList.elementAt用法及代碼示例
注:本文由純淨天空篩選整理自dart.dev大神的英文原創作品 wait<T> method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。