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