Spec-Zone.ru › Dart 2

dart:async

Поток<T>.ошибка конструктор

  1. @Since("2.5")
Поток<T>.ошибка(
  1. Объект ошибка,
  2. [StackTrace? стекОтслеживания]
)

Создаёт поток, который испускает одно событие об ошибке до завершения.

Этот поток испускает одно событие об ошибке error и stackTrace и затем завершается событием завершения.

Пример:

Future<void> tryThings(Stream<int> data) async {
  try {
    await for (var x in data) {
      print('Data: $x');
    }
  } catch (e) {
    print(e);
  }
}
tryThings(Stream<int>.error('Error')); // prints "Error".

Возвращаемый поток фактически эквивалентен потоку, созданному Future<T>.error(error, stackTrace).asStream(), или (() async* { throw error; } ()), за исключением того, что вы также можете управлять стеком отслеживания.

Реализация

@Since("2.5")
factory Stream.error(Object error, [StackTrace? stackTrace]) {
  // TODO(40614): Remove once non-nullability is sound.
  checkNotNullable(error, "error");
  return (_AsyncStreamController<T>(null, null, null, null)
        .._addError(error, stackTrace ?? AsyncError.defaultStackTrace(error))
        .._closeUnchecked())
      .stream;
}

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-async/Stream/Stream.error.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API