completeError 抽象方法
- Object error,
- [StackTrace? stackTrace]
通过错误完成 future。
调用 complete 或 completeError 只能最多执行一次。
通过错误完成 future 表示在尝试产生值时抛出了异常。
如果 error
是 Future,则使用 future 本身作为错误值。如果想要用 future 的结果完成,可以使用
thisCompleter.complete(theFuture)
或者如果你只想处理 future 中的错误
theFuture.catchError(thisCompleter.completeError);
在调用 completeError) 或 error
之前,future 必须安装错误处理器,否则 error
将被视为未捕获的错误。
void doStuff() {
// Outputs a message like:
// Uncaught Error: Assertion failed: "future not consumed"
Completer().completeError(AssertionError('future not consumed'));
}
您可以通过 Future.catchError、Future.then 或 await
操作安装错误处理器。
void doStuff() {
final c = Completer();
c.future.catchError((e) {
// Handle the error.
});
c.completeError(AssertionError('future not consumed'));
}
有关未捕获错误的详细信息,请参阅 Zones 文章。
实现
void completeError(Object error, [StackTrace? stackTrace]);