@@ -12,6 +12,11 namespace Implab { | |||||
12 | get; |
|
12 | get; | |
13 | } |
|
13 | } | |
14 |
|
14 | |||
|
15 | /// <summary> | |||
|
16 | /// Тип результата, получаемого через данное обещание. | |||
|
17 | /// </summary> | |||
|
18 | Type PromiseType { get; } | |||
|
19 | ||||
15 | bool IsResolved { get; } |
|
20 | bool IsResolved { get; } | |
16 |
|
21 | |||
17 | bool IsCancelled { get; } |
|
22 | bool IsCancelled { get; } | |
@@ -19,5 +24,7 namespace Implab { | |||||
19 | IPromiseBase Then(Action success,ErrorHandler error); |
|
24 | IPromiseBase Then(Action success,ErrorHandler error); | |
20 | IPromiseBase Then(Action success); |
|
25 | IPromiseBase Then(Action success); | |
21 |
|
26 | |||
|
27 | IPromise<T> Cast<T>(); | |||
|
28 | ||||
22 | } |
|
29 | } | |
23 | } |
|
30 | } |
@@ -11,7 +11,7 namespace Implab { | |||||
11 | public delegate T ErrorHandler<out T>(Exception e); |
|
11 | public delegate T ErrorHandler<out T>(Exception e); | |
12 | public delegate void ResultHandler<in T>(T result); |
|
12 | public delegate void ResultHandler<in T>(T result); | |
13 | public delegate TNew ResultMapper<in TSrc, out TNew>(TSrc result); |
|
13 | public delegate TNew ResultMapper<in TSrc, out TNew>(TSrc result); | |
14 |
public delegate Promise<TNew> ChainedOperation<in TSrc, |
|
14 | public delegate Promise<TNew> ChainedOperation<in TSrc,TNew>(TSrc result); | |
15 |
|
15 | |||
16 | /// <summary> |
|
16 | /// <summary> | |
17 | /// Класс для асинхронного получения результатов. Так называемое "обещание". |
|
17 | /// Класс для асинхронного получения результатов. Так называемое "обещание". | |
@@ -137,6 +137,10 namespace Implab { | |||||
137 | } |
|
137 | } | |
138 | } |
|
138 | } | |
139 |
|
139 | |||
|
140 | public Type PromiseType { | |||
|
141 | get { return typeof(T); } | |||
|
142 | } | |||
|
143 | ||||
140 | /// <summary> |
|
144 | /// <summary> | |
141 | /// Выполняет обещание, сообщая об успешном выполнении. |
|
145 | /// Выполняет обещание, сообщая об успешном выполнении. | |
142 | /// </summary> |
|
146 | /// </summary> | |
@@ -473,6 +477,15 namespace Implab { | |||||
473 | } |
|
477 | } | |
474 |
|
478 | |||
475 | /// <summary> |
|
479 | /// <summary> | |
|
480 | /// Преобразует результат обещания к нужному типу | |||
|
481 | /// </summary> | |||
|
482 | /// <typeparam name="T2"></typeparam> | |||
|
483 | /// <returns></returns> | |||
|
484 | public IPromise<T2> Cast<T2>() { | |||
|
485 | return Map(x => (T2)(object)x, null); | |||
|
486 | } | |||
|
487 | ||||
|
488 | /// <summary> | |||
476 | /// Дожидается отложенного обещания и в случае успеха, возвращает |
|
489 | /// Дожидается отложенного обещания и в случае успеха, возвращает | |
477 | /// его, результат, в противном случае бросает исключение. |
|
490 | /// его, результат, в противном случае бросает исключение. | |
478 | /// </summary> |
|
491 | /// </summary> |
General Comments 0
You need to be logged in to leave comments.
Login now