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]);