Spec-Zone.ru › Dart 1

dart:async

then абстрактный метод

Future<S> then<S>(dynamic onValue(T value), { Function onError })

Регистрирует обратные вызовы, которые должны быть вызваны, когда это будущее завершено.

Когда это будущее завершается значением, обратный вызов onValue будет вызван с этим значением. Если это будущее уже завершено, обратный вызов не будет вызван немедленно, а будет запланирован на более позднюю микрозадачу.

Если onError предоставлен, и это будущее завершается с ошибкой, обратный вызов onError вызывается с этой ошибкой и её трассировкой стека. Обратный вызов onError должен принимать либо один аргумент, либо два аргумента. Если onError принимает два аргумента, он вызывается как с ошибкой, так и с трассировкой стека; в противном случае он вызывается только с объектом ошибки.

Возвращает новое Future, которое завершается результатом вызова onValue (если это будущее завершается значением) или вызова onError (если это будущее завершается с ошибкой).

Если вызванный обратный вызов выбрасывает исключение, возвращаемое будущее завершается выброшенной ошибкой и трассировкой стека ошибки. В случае onError, если выброшенное исключение является identical аргументом ошибки в onError, выброс считается повторным выбросом, и используется исходная трассировка стека.

Если обратный вызов возвращает Future, будущее, возвращённое then, завершится тем же результатом, что и будущее, возвращённое обратным вызовом.

Если onError не указан, и это будущее завершается с ошибкой, ошибка передаётся непосредственно возвращаемому будущему.

В большинстве случаев более читаемо использовать catchError отдельно, возможно, с параметром test, вместо обработки как значения, так и ошибки в одном вызове then.

Обратите внимание, что futures не откладывают сообщения об ошибках до добавления слушателей. Если первый вызов then или catchError происходит после того, как это будущее завершилось с ошибкой, ошибка сообщается как необработанная ошибка. Смотрите описание в Future.

Источник

Future<S> then<S>(FutureOr<S> onValue(T value), {Function onError});

© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-async/Future/then.html

Spec-Zone.ru

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