| OLD | NEW | 
|---|
| 1 // Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 // Dart core library. | 5 // Dart core library. | 
| 6 | 6 | 
| 7 | 7 | 
| 8 /** | 8 /** | 
| 9  * A Future is used to obtain a value sometime in the | 9  * A Future is used to obtain a value sometime in the | 
| 10  * future. | 10  * future. | 
| 11  * | 11  * | 
| 12  * Receivers of a Future obtain the value by passing | 12  * Receivers of a Future obtain the value by passing | 
| 13  * a callback to the 'then' method of Future. | 13  * a callback to the 'then' method of Future. | 
| 14  * | 14  * | 
| 15  * For example: | 15  * For example: | 
| 16  * | 16  * | 
| 17  *   Future<int> future = getFutureFromSomewhere(); | 17  *   Future<int> future = getFutureFromSomewhere(); | 
| 18  *   future.then((value) { | 18  *   future.then((value) { | 
| 19  *     print("I received the number " + value); | 19  *     print("I received the number " + value); | 
| 20  *   }); | 20  *   }); | 
| 21  * | 21  * | 
| 22  */ | 22  */ | 
| 23 interface Future<T> factory FutureImpl<T> { | 23 interface Future<T> default FutureImpl<T> { | 
| 24 | 24 | 
| 25   /** | 25   /** | 
| 26    * The value this future provided.  (If called when hasValue | 26    * The value this future provided.  (If called when hasValue | 
| 27    * is false, then throws an exception.) | 27    * is false, then throws an exception.) | 
| 28    */ | 28    */ | 
| 29   T get value(); | 29   T get value(); | 
| 30 | 30 | 
| 31   /** | 31   /** | 
| 32    * Exception that occurred (null if no exception occured).  (If called | 32    * Exception that occurred (null if no exception occured).  (If called | 
| 33    * before [isComplete] is true, then this exception property itself | 33    * before [isComplete] is true, then this exception property itself | 
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 87  *   // send [future] object back to client... | 87  *   // send [future] object back to client... | 
| 88  * | 88  * | 
| 89  *   // later when value is available, call: | 89  *   // later when value is available, call: | 
| 90  *   completer.complete(value); | 90  *   completer.complete(value); | 
| 91  * | 91  * | 
| 92  *   // alternatively, if the service cannot produce the value, it | 92  *   // alternatively, if the service cannot produce the value, it | 
| 93  *   // can provide an exception: | 93  *   // can provide an exception: | 
| 94  *   completer.completeException(exception); | 94  *   completer.completeException(exception); | 
| 95  * | 95  * | 
| 96  */ | 96  */ | 
| 97 interface Completer<T> factory CompleterImpl<T> { | 97 interface Completer<T> default CompleterImpl<T> { | 
| 98 | 98 | 
| 99   /** Create a completer */ | 99   /** Create a completer */ | 
| 100   Completer(); | 100   Completer(); | 
| 101 | 101 | 
| 102   Future get future(); | 102   Future get future(); | 
| 103 | 103 | 
| 104   /** | 104   /** | 
| 105    * Called when value is available. | 105    * Called when value is available. | 
| 106    */ | 106    */ | 
| 107   void complete(T value); | 107   void complete(T value); | 
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 139         values[pos] = value; | 139         values[pos] = value; | 
| 140         if (--remaining == 0) { | 140         if (--remaining == 0) { | 
| 141           completer.complete(values); | 141           completer.complete(values); | 
| 142         } | 142         } | 
| 143       }); | 143       }); | 
| 144     } | 144     } | 
| 145     return completer.future; | 145     return completer.future; | 
| 146   } | 146   } | 
| 147 } | 147 } | 
| 148 | 148 | 
| OLD | NEW | 
|---|