Mercurial > pub > ImplabNet
comparison Implab/PromiseExtensions.cs @ 76:c761fc982e1d v2
Refactoring of the IPromise<T> interface
Added tests
author | cin |
---|---|
date | Wed, 10 Sep 2014 17:53:05 +0400 |
parents | 4439140706d0 |
children | 279e226dffdd |
comparison
equal
deleted
inserted
replaced
75:4439140706d0 | 76:c761fc982e1d |
---|---|
12 if (context == null) | 12 if (context == null) |
13 return that; | 13 return that; |
14 | 14 |
15 var p = new SyncContextPromise<T>(context, that, true); | 15 var p = new SyncContextPromise<T>(context, that, true); |
16 | 16 |
17 that.Then( | 17 that.Last( |
18 x => p.Resolve(x), | 18 p.Resolve, |
19 e => { | 19 p.Reject, |
20 p.Reject(e); | 20 p.Cancel |
21 return default(T); | |
22 } | |
23 ); | 21 ); |
24 return p; | 22 return p; |
25 } | 23 } |
26 | 24 |
27 public static IPromise<T> DispatchToContext<T>(this IPromise<T> that, SynchronizationContext context) { | 25 public static IPromise<T> DispatchToContext<T>(this IPromise<T> that, SynchronizationContext context) { |
28 Safe.ArgumentNotNull(that, "that"); | 26 Safe.ArgumentNotNull(that, "that"); |
29 Safe.ArgumentNotNull(context, "context"); | 27 Safe.ArgumentNotNull(context, "context"); |
30 | 28 |
31 var p = new SyncContextPromise<T>(context, that, true); | 29 var p = new SyncContextPromise<T>(context, that, true); |
32 | 30 |
33 that.Then( | 31 that.Last( |
34 x => p.Resolve(x), | 32 p.Resolve, |
35 e => { | 33 p.Reject, |
36 p.Reject(e); | 34 p.Cancel |
37 return default(T); | |
38 } | |
39 ); | 35 ); |
40 return p; | 36 return p; |
41 } | 37 } |
42 | 38 |
43 public static AsyncCallback AsyncCallback<T>(this Promise<T> that, Func<IAsyncResult,T> callback) { | 39 public static AsyncCallback AsyncCallback<T>(this Promise<T> that, Func<IAsyncResult,T> callback) { |