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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。