dart:async
庫中Future.timeout
方法的用法介紹如下。
用法:
Future<T> timeout(
Duration timeLimit,
{FutureOr<T> onTimeout(
)?}
)
Time-out timeLimit
之後的未來計算已經過去。
如果這個未來及時完成,則返回一個與這個未來具有相同值的新未來。
如果在timeLimit
過去之前這個future 沒有完成,那麽將執行onTimeout
動作,並將其結果(無論是返回還是拋出)用作返回的future 的結果。 onTimeout
函數必須返回 T
或 Future<T>
。
如果省略 onTimeout
,超時將導致返回的未來以 TimeoutException 完成。
例子:
void main() async {
var result = await waitTask()
.timeout(const Duration(seconds: 10));
print(result); // 'completed'
result = await waitTask()
.timeout(const Duration(seconds: 1), onTimeout: () => 'timeout');
print(result); // 'timeout'
result = await waitTask()
.timeout(const Duration(seconds: 2)); // Throws.
}
Future<String> waitTask() async {
await Future.delayed(const Duration(seconds: 5));
return 'completed';
}
相關用法
- Dart Future.doWhile用法及代碼示例
- Dart Future.any用法及代碼示例
- Dart Future.value用法及代碼示例
- Dart Future.wait用法及代碼示例
- Dart Future.whenComplete用法及代碼示例
- Dart Future.catchError用法及代碼示例
- Dart Future.error用法及代碼示例
- 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大神的英文原創作品 timeout method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。