void ObservePromise(Promise <T> promise) { promise.Done(deferred.Resolve); promise.Fail(t => { nonResolvedCount++; if (nonResolvedCount == size) { deferred.Dispose(); } }); promise.Disposed(() => { nonResolvedCount++; if (nonResolvedCount == size) { deferred.Dispose(); } }); }
public override void Dispose() { _deferred.Dispose(); if (_socket != null) { _socket.Dispose(); } base.Dispose(); }
public override void OnEnteredForeground() { if (_socket != null) { _socket.Dispose(); _socket = null; } _deffered.Dispose(); ConnectWebsocket(); CleanNotification(); }
public void ExceptionThrownInDisposedShouldBeReportedToSinkExceptionHandler() { Promises.ResetSinkExceptionHandler(e => exceptions.Add(e)); var source = new Deferred <TWrapper <int> > (); source.Disposed(() => { throw new Exception(); }); source.Disposed(() => { throw new Exception(); }); source.Dispose(); source.Disposed(() => { throw new Exception(); }); source.Disposed(() => { throw new Exception(); }); Assert.That(exceptions.Count, Is.EqualTo(4)); }
protected override Promise <CUnit> DoHide() { animator.ResetTrigger("TriggerHide"); animator.ResetTrigger("TriggerShow"); animatorEventSubject.OnNext("Reset"); var result = new Deferred <CUnit> (); animator.SetTrigger("TriggerHide"); animatorEventSubject.Take(1).Subscribe(e => { if (e == "Hidden") { result.Resolve(CUnit.Default); } else { result.Dispose(); } }).AddTo(this); result.Disposed(DoForceHide); return(result); }