@@ -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