Mercurial > pub > ImplabNet
annotate Implab/IDeferred.cs @ 196:40d7fed4a09e
fixed promise chaining behavior, the error handler doesn't handle result or cancellation handlers exceptions these exceptions are propagated to the next handlers.
author | cin |
---|---|
date | Mon, 29 Aug 2016 23:15:51 +0300 |
parents | 706fccb85524 |
children | fa6cbf4d8841 |
rev | line source |
---|---|
119 | 1 using System; |
2 | |
3 namespace Implab { | |
4 /// <summary> | |
5 /// Deferred result, usually used by asynchronous services as the service part of the promise. | |
6 /// </summary> | |
145 | 7 public interface IDeferred : ICancellationToken { |
119 | 8 |
9 void Resolve(); | |
10 | |
138
f75cfa58e3d4
added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
cin
parents:
119
diff
changeset
|
11 /// <summary> |
f75cfa58e3d4
added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
cin
parents:
119
diff
changeset
|
12 /// Reject the promise with the specified error. |
f75cfa58e3d4
added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
cin
parents:
119
diff
changeset
|
13 /// </summary> |
f75cfa58e3d4
added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
cin
parents:
119
diff
changeset
|
14 /// <param name="error">The reason why the promise is rejected.</param> |
f75cfa58e3d4
added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
cin
parents:
119
diff
changeset
|
15 /// <remarks> |
f75cfa58e3d4
added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
cin
parents:
119
diff
changeset
|
16 /// Some exceptions are treated in a special case: |
f75cfa58e3d4
added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
cin
parents:
119
diff
changeset
|
17 /// <see cref="OperationCanceledException"/> is interpreted as call to <see cref="Cancel()"/> method, |
f75cfa58e3d4
added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
cin
parents:
119
diff
changeset
|
18 /// and <see cref="PromiseTransientException"/> is always unwrapped and its |
f75cfa58e3d4
added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
cin
parents:
119
diff
changeset
|
19 /// <see cref="PromiseTransientException.InnerException"> is used as the reason to reject promise. |
f75cfa58e3d4
added ICancellable.Cancel(Exception) to allow specify the reason of cancellation
cin
parents:
119
diff
changeset
|
20 /// </remarks> |
119 | 21 void Reject(Exception error); |
22 } | |
23 } | |
24 |