Ejemplo n.º 1
0
        public override Promise <U> Then <U> (Func <T, Promise <U> > done)
        {
            if (this.IsRejected)
            {
                return(Promises.Rejected <U>(exception));
            }
            if (this.IsDisposed)
            {
                return(Promises.Disposed <U>());
            }

            var deferred = new Deferred <U>();

            Done(t => {
                try {
                    done(t)
                    .Done(u => deferred.Resolve(u))
                    .Fail(e => deferred.Reject(e))
                    .Disposed(() => deferred.Dispose());
                }
                catch (Exception e) {
                    deferred.Reject(e);
                }
            });
            Fail(e => deferred.Reject(e));
            Disposed(() => deferred.Dispose());
            return(deferred);
        }
Ejemplo n.º 2
0
 public Promise <T> Where(Predicate <T> condition)
 {
     return(Then(t => {
         if (condition(t))
         {
             return Promises.Resolved(t);
         }
         else
         {
             return Promises.Disposed <T>();
         }
     }));
 }