completeError 抽象方法

void completeError(
  1. Object error, [
  2. StackTrace? stackTrace
])

使用错误完成 future

调用 completecompleteError 必须最多一次完成。

使用错误完成 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.catchErrorFuture.thenawait 操作来安装错误处理程序。

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