Ejemplo n.º 1
0
        public static IPromise <IPromise[]> When(params IPromise[] promises)
        {
            var def = new Deferred <IPromise[]>();

            foreach (var prom in promises)
            {
                prom.Done(() =>
                {
                    lock (promises)
                    {
                        if (promises.All(p => p.IsResolved()))
                        {
                            def.Resolve(promises);
                        }
                    }
                })
                .Fail((error) =>
                {
                    if (promises.All(p => !p.IsPending()))
                    {
                        def.Reject();
                    }
                });
            }
            return(def.Promise());
        }
Ejemplo n.º 2
0
        public virtual IPromise Then(IPromise nextPromise)
        {
            var nextDeferred = new Deferred();

            this.Done(() =>
            {
                nextPromise
                .Done(() =>
                {
                    nextDeferred.Resolve();
                })
                .Fail((error) =>
                {
                    nextDeferred.Reject(error);
                });
            })
            .Fail((error) =>
            {
                nextDeferred.Reject(error);
            });
            return(nextDeferred.Promise());
        }