dart:async
庫中Completer
類的用法介紹如下。
一種生成 Future 對象並在以後使用值或錯誤完成它們的方法。
大多數時候,創建 Future 的最簡單方法是僅使用 Future 構造函數之一來捕獲單個異步計算的結果:
Future(() { doSomething(); return result; });
或者,如果未來表示一係列異步計算的結果,則可以使用 Future.then 或 Future 上的類似函數鏈接它們:
Future doStuff(){
return someAsyncOperation().then((result) {
return someOtherAsyncOperation(result);
});
}
如果您確實需要從頭開始創建 Future — 例如,當您將基於回調的 API 轉換為基於 Future 的 API 時 — 您可以使用 Completer,如下所示:
class AsyncOperation {
final Completer _completer = new Completer();
Future<T> doOperation() {
_startOperation();
return _completer.future; // Send future object back to client.
}
// Something calls this when the value is ready.
void _finishOperation(T result) {
_completer.complete(result);
}
// If something goes wrong, call this.
void _errorHappened(error) {
_completer.completeError(error);
}
}
相關用法
- Dart Completer.completeError用法及代碼示例
- Dart Completer.sync用法及代碼示例
- Dart Completer構造函數用法及代碼示例
- Dart Comparable用法及代碼示例
- Dart ContentType.text用法及代碼示例
- Dart ContentType.parse用法及代碼示例
- Dart Codec.fuse用法及代碼示例
- Dart CanvasRenderingContext2D.drawImageScaledFromSource用法及代碼示例
- Dart CanvasRenderingContext2D.drawImageScaled用法及代碼示例
- Dart CanvasRenderingContext2D.drawImage用法及代碼示例
- Dart CanvasRenderingContext2D.drawImageToRect用法及代碼示例
- Dart CanvasPattern用法及代碼示例
- Dart CanvasGradient用法及代碼示例
- Dart CanvasElement.toDataUrl用法及代碼示例
- Dart MapMixin.containsKey用法及代碼示例
- Dart Iterator用法及代碼示例
- Dart AttributeClassSet.intersection用法及代碼示例
- Dart num.sign用法及代碼示例
- Dart TransformList.last用法及代碼示例
- Dart FileList.first用法及代碼示例
- Dart FileList.length用法及代碼示例
- Dart Iterable.takeWhile用法及代碼示例
- Dart LinkedHashMap用法及代碼示例
- Dart RegExp.pattern用法及代碼示例
- Dart StreamTransformer構造函數用法及代碼示例
注:本文由純淨天空篩選整理自dart.dev大神的英文原創作品 Completer<T> class。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。