| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 part of dart.async; | 5 part of dart.async; |
| 6 | 6 |
| 7 // ------------------------------------------------------------------- | 7 // ------------------------------------------------------------------- |
| 8 // Core Stream types | 8 // Core Stream types |
| 9 // ------------------------------------------------------------------- | 9 // ------------------------------------------------------------------- |
| 10 | 10 |
| (...skipping 493 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 504 sync: true | 504 sync: true |
| 505 ); | 505 ); |
| 506 } | 506 } |
| 507 return controller.stream; | 507 return controller.stream; |
| 508 } | 508 } |
| 509 | 509 |
| 510 /** | 510 /** |
| 511 * Creates a wrapper Stream that intercepts some errors from this stream. | 511 * Creates a wrapper Stream that intercepts some errors from this stream. |
| 512 * | 512 * |
| 513 * If this stream sends an error that matches [test], then it is intercepted | 513 * If this stream sends an error that matches [test], then it is intercepted |
| 514 * by the [handle] function. | 514 * by the [onError] function. |
| 515 * | 515 * |
| 516 * The [onError] callback must be of type `void onError(error)` or | 516 * The [onError] callback must be of type `void onError(error)` or |
| 517 * `void onError(error, StackTrace stackTrace)`. Depending on the function | 517 * `void onError(error, StackTrace stackTrace)`. Depending on the function |
| 518 * type the stream either invokes [onError] with or without a stack | 518 * type the stream either invokes [onError] with or without a stack |
| 519 * trace. The stack trace argument might be `null` if the stream itself | 519 * trace. The stack trace argument might be `null` if the stream itself |
| 520 * received an error without stack trace. | 520 * received an error without stack trace. |
| 521 * | 521 * |
| 522 * An asynchronous error [:e:] is matched by a test function if [:test(e):] | 522 * An asynchronous error `error` is matched by a test function if |
| 523 * returns true. If [test] is omitted, every error is considered matching. | 523 *`test(error)` returns true. If [test] is omitted, every error is considered |
| 524 * matching. |
| 524 * | 525 * |
| 525 * If the error is intercepted, the [handle] function can decide what to do | 526 * If the error is intercepted, the [onError] function can decide what to do |
| 526 * with it. It can throw if it wants to raise a new (or the same) error, | 527 * with it. It can throw if it wants to raise a new (or the same) error, |
| 527 * or simply return to make the stream forget the error. | 528 * or simply return to make the stream forget the error. |
| 528 * | 529 * |
| 529 * If you need to transform an error into a data event, use the more generic | 530 * If you need to transform an error into a data event, use the more generic |
| 530 * [Stream.transform] to handle the event by writing a data event to | 531 * [Stream.transform] to handle the event by writing a data event to |
| 531 * the output sink. | 532 * the output sink. |
| 532 * | 533 * |
| 533 * The returned stream is a broadcast stream if this stream is. | 534 * The returned stream is a broadcast stream if this stream is. |
| 534 * If a broadcast stream is listened to more than once, each subscription | 535 * If a broadcast stream is listened to more than once, each subscription |
| 535 * will individually perform the `test` and handle the error. | 536 * will individually perform the `test` and handle the error. |
| (...skipping 1290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1826 class _ControllerEventSinkWrapper<T> implements EventSink<T> { | 1827 class _ControllerEventSinkWrapper<T> implements EventSink<T> { |
| 1827 EventSink _sink; | 1828 EventSink _sink; |
| 1828 _ControllerEventSinkWrapper(this._sink); | 1829 _ControllerEventSinkWrapper(this._sink); |
| 1829 | 1830 |
| 1830 void add(T data) { _sink.add(data); } | 1831 void add(T data) { _sink.add(data); } |
| 1831 void addError(error, [StackTrace stackTrace]) { | 1832 void addError(error, [StackTrace stackTrace]) { |
| 1832 _sink.addError(error, stackTrace); | 1833 _sink.addError(error, stackTrace); |
| 1833 } | 1834 } |
| 1834 void close() { _sink.close(); } | 1835 void close() { _sink.close(); } |
| 1835 } | 1836 } |
| OLD | NEW |