Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 * A [Future] represents a delayed computation. It is used to obtain a not-yet | 8 * A [Future] represents a delayed computation. It is used to obtain a not-yet |
| 9 * available value, or error, sometime in the future. Receivers of a | 9 * available value, or error, sometime in the future. Receivers of a |
| 10 * [Future] can register callbacks that handle the value or error once it is | 10 * [Future] can register callbacks that handle the value or error once it is |
| (...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 338 * | 338 * |
| 339 * // alternatively, if the service cannot produce the value, it | 339 * // alternatively, if the service cannot produce the value, it |
| 340 * // can provide an error: | 340 * // can provide an error: |
| 341 * completer.completeError(error); | 341 * completer.completeError(error); |
| 342 * | 342 * |
| 343 */ | 343 */ |
| 344 abstract class Completer<T> { | 344 abstract class Completer<T> { |
| 345 | 345 |
| 346 factory Completer() => new _CompleterImpl<T>(); | 346 factory Completer() => new _CompleterImpl<T>(); |
| 347 | 347 |
| 348 /** | |
| 349 * Completes the future synchronously. | |
| 350 * | |
| 351 * This constructor should be avoided unless the completion of the future is | |
| 352 * known to be the final result of another synchronous operation. If in doubt | |
|
Lasse Reichstein Nielsen
2013/05/06 06:49:11
synchronous -> asynchronous? (following the first
floitsch
2013/05/06 15:14:45
Done.
| |
| 353 * use the default [Completer] constructor. | |
| 354 * | |
| 355 * Example: | |
| 356 * | |
| 357 * var completer = new Completer.sync(); | |
| 358 * // The completion is the result of the asynchronous onDone event. | |
| 359 * // No other operation is performed after the completion. It is safe | |
| 360 * // to use the Completer.sync constructor. | |
| 361 * stream.listen(print, onDone: () { completer.complete("done"); }); | |
| 362 * | |
| 363 * Bad example. Do not use this code. Only for illustrative purposes: | |
| 364 * | |
| 365 * var completer = new Completer.sync(); | |
| 366 * // The completion is the result of the asynchronous onDone event. | |
| 367 * // However, there is still code executed after the completion. This | |
| 368 * // operation is *not* safe. | |
| 369 * stream.listen(print, onDone: () { | |
| 370 * completer.complete("done"); | |
| 371 * foo(); // This operation follows the completion. | |
| 372 * }); | |
| 373 * | |
| 374 * *WARNING* This constructor is experimental and could disappear or change | |
| 375 * behavior. | |
| 376 */ | |
| 377 factory Completer.sync() => new _SyncCompleterImpl<T>(); | |
| 378 | |
| 348 /** The future that will contain the result provided to this completer. */ | 379 /** The future that will contain the result provided to this completer. */ |
| 349 Future get future; | 380 Future get future; |
| 350 | 381 |
| 351 /** | 382 /** |
| 352 * Completes [future] with the supplied values. | 383 * Completes [future] with the supplied values. |
| 353 * | 384 * |
| 354 * All listeners on the future will be immediately informed about the value. | 385 * All listeners on the future will be immediately informed about the value. |
| 355 */ | 386 */ |
| 356 void complete([T value]); | 387 void complete([T value]); |
| 357 | 388 |
| 358 /** | 389 /** |
| 359 * Complete [future] with an error. | 390 * Complete [future] with an error. |
| 360 * | 391 * |
| 361 * Completing a future with an error indicates that an exception was thrown | 392 * Completing a future with an error indicates that an exception was thrown |
| 362 * while trying to produce a value. | 393 * while trying to produce a value. |
| 363 * | 394 * |
| 364 * The argument [exception] should not be `null`. | 395 * The argument [exception] should not be `null`. |
| 365 */ | 396 */ |
| 366 void completeError(Object exception, [Object stackTrace]); | 397 void completeError(Object exception, [Object stackTrace]); |
| 367 | 398 |
| 368 /** | 399 /** |
| 369 * Whether the future has been completed. | 400 * Whether the future has been completed. |
| 370 */ | 401 */ |
| 371 bool get isCompleted; | 402 bool get isCompleted; |
| 372 } | 403 } |
| OLD | NEW |