示例#1
0
 /// <summary>
 /// Takes a function that yields an enumerable of promises.
 /// Converts to a non-value promise.
 /// Returns a promise that resolves when the first of the promises has resolved.
 /// Yields the value from the first promise that has resolved.
 /// </summary>
 public IPromise ThenRace(Func <PromisedT, IEnumerable <IPromise> > chain)
 {
     return(Then(value => Promise.Race(chain(value))));
 }
示例#2
0
 /// <summary>
 /// Return a new promise with a different value.
 /// May also change the type of the value.
 /// </summary>
 public IPromise <ConvertedT> Then <ConvertedT>(Func <PromisedT, ConvertedT> transform)
 {
     //            Argument.NotNull(() => transform);
     return(Then(value => Promise <ConvertedT> .Resolved(transform(value))));
 }
示例#3
0
 /// <summary>
 /// Takes a function that yields an enumerable of promises.
 /// Returns a promise that resolves when the first of the promises has resolved.
 /// Yields the value from the first promise that has resolved.
 /// </summary>
 public IPromise <ConvertedT> ThenRace <ConvertedT>(Func <PromisedT, IEnumerable <IPromise <ConvertedT> > > chain)
 {
     return(Then(value => Promise <ConvertedT> .Race(chain(value))));
 }
示例#4
0
 /// <summary>
 /// Complete the promise. Adds a default error handler.
 /// </summary>
 public void Done()
 {
     Catch(ex =>
           Promise.PropagateUnhandledException(this, ex)
           );
 }