Exemple #1
0
        private Promise<T> _Then(ChainReturnDelegate Chain)
        {
            lock(lockObject)
            {
                return new Promise<T>((LocalResolve, LocalReject) => {
                    try
                    {
                        _asyncSubject
                            .First()
                            .Where(_ => _isFulfilled)
                            .Delay(TimeSpan.FromMilliseconds(_delay))
                            .Subscribe(_ => {
                                _payload = Chain(_payload);
                                LocalResolve(_payload);
                            });

                        _asyncSubject
                            .First()
                            .Where(_ => _isRejected)
                            .Subscribe(_ => {
                                LocalReject(_payload);
                            });
                    }
                    catch
                    {
                        LocalReject(_payload);
                    }
                });
            }
        }
Exemple #2
0
        private Promise<T> _Catch(ChainReturnDelegate Chain)
        {
            lock(lockObject)
            {
                return new Promise<T>((LocalResolve, LocalReject) => {
                    try
                    {
                        _asyncSubject
                            .First()
                            .Where(_ => _isRejected)
                            .Subscribe(_ => {
                                _payload = Chain(_payload);
                                LocalResolve(_payload);
                            });

                        _asyncSubject
                            .First()
                            .Where(_ => _isFulfilled)
                            .Subscribe(_ => {
                                LocalResolve(_payload);
                            });
                    }
                    catch
                    {
                        LocalReject(_payload);
                    }
                });
            }
        }
Exemple #3
0
 public Promise<T> Then(ChainReturnDelegate Chain)
 {
     return _Then(Chain);
 }
Exemple #4
0
 public Promise<T> Catch(ChainReturnDelegate Chain)
 {
     return _Catch(Chain);
 }