| @@ -17,20 +17,55 namespace Implab { | |||||
| 17 | /// </summary> |
|
17 | /// </summary> | |
| 18 | Type PromiseType { get; } |
|
18 | Type PromiseType { get; } | |
| 19 |
|
19 | |||
|
|
20 | /// <summary> | |||
|
|
21 | /// Обещание является выполненым, либо успешно, либо с ошибкой. | |||
|
|
22 | /// </summary> | |||
| 20 | bool IsResolved { get; } |
|
23 | bool IsResolved { get; } | |
| 21 |
|
24 | |||
|
|
25 | /// <summary> | |||
|
|
26 | /// Обещание было отменено. | |||
|
|
27 | /// </summary> | |||
| 22 | bool IsCancelled { get; } |
|
28 | bool IsCancelled { get; } | |
| 23 |
|
29 | |||
| 24 | IPromise Then(Action success,ErrorHandler error); |
|
30 | IPromise Then(Action success,ErrorHandler error); | |
| 25 | IPromise Then(Action success); |
|
31 | IPromise Then(Action success); | |
| 26 | IPromise Error(ErrorHandler error); |
|
32 | IPromise Error(ErrorHandler error); | |
|
|
33 | /// <summary> | |||
|
|
34 | /// Обрабатывает либо ошибку, либо результат. Событие отмены не обрабатывается. | |||
|
|
35 | /// </summary> | |||
|
|
36 | /// <param name="handler">Обработчик.</param> | |||
|
|
37 | /// <remarks>После обработке ошибки, она передается дальше.</remarks> | |||
| 27 | IPromise Anyway(Action handler); |
|
38 | IPromise Anyway(Action handler); | |
|
|
39 | ||||
|
|
40 | /// <summary> | |||
|
|
41 | /// Обрабатывает либо ошибку, либо результат, либо отмену обещания. | |||
|
|
42 | /// </summary> | |||
|
|
43 | /// <param name="handler">Обработчик.</param> | |||
|
|
44 | /// <remarks>После обработке ошибки, она передается дальше.</remarks> | |||
| 28 | IPromise Finally(Action handler); |
|
45 | IPromise Finally(Action handler); | |
|
|
46 | /// <summary> | |||
|
|
47 | /// Обработчик для регистрации отмены обещания, событие отмены не может быть подавлено. | |||
|
|
48 | /// </summary> | |||
|
|
49 | /// <returns>Новое обещание, связанное с текущим.</returns> | |||
|
|
50 | /// <param name="handler">Обработчик события.</param> | |||
|
|
51 | /// <remarks>Если обработчик вызывает исключение, то оно передается обработчику ошибки, результат работы | |||
|
|
52 | /// которого будет передан связанному обещанию</remarks> | |||
| 29 | IPromise Cancelled(Action handler); |
|
53 | IPromise Cancelled(Action handler); | |
| 30 |
|
54 | |||
|
|
55 | /// <summary> | |||
|
|
56 | /// Преобразует результат обещания к заданному типу и возвращает новое обещание. | |||
|
|
57 | /// </summary> | |||
| 31 | IPromise<T> Cast<T>(); |
|
58 | IPromise<T> Cast<T>(); | |
| 32 |
|
59 | |||
|
|
60 | /// <summary> | |||
|
|
61 | /// Синхронизирует текущий поток с обещанием. | |||
|
|
62 | /// </summary> | |||
| 33 | void Join(); |
|
63 | void Join(); | |
|
|
64 | /// <summary> | |||
|
|
65 | /// Синхронизирует текущий поток с обещанием. | |||
|
|
66 | /// </summary> | |||
|
|
67 | /// <param name="timeout">Время ожидания, по его истечению возникнет исключение.</param> | |||
|
|
68 | /// <exception cref="TimeoutException">Превышено время ожидания.</exception> | |||
| 34 | void Join(int timeout); |
|
69 | void Join(int timeout); | |
| 35 |
|
70 | |||
| 36 | } |
|
71 | } | |
| @@ -447,8 +447,9 namespace Implab { | |||||
| 447 | } |
|
447 | } | |
| 448 |
|
448 | |||
| 449 | public IPromise<T> Cancelled(Action handler) { |
|
449 | public IPromise<T> Cancelled(Action handler) { | |
| 450 | AddHandler(null, null, handler, null); |
|
450 | var medium = new Promise<T>(this, true); | |
| 451 | return this; |
|
451 | AddHandler(null, null, handler, medium); | |
|
|
452 | return medium; | |||
| 452 | } |
|
453 | } | |
| 453 |
|
454 | |||
| 454 | /// <summary> |
|
455 | /// <summary> | |
General Comments 0
You need to be logged in to leave comments.
Login now
