/// <summary> /// TBD /// </summary> /// <param name="subscriber">TBD</param> public void Subscribe(ISubscriber <T> subscriber) { ReactiveStreamsCompliance.RequireNonNullSubscriber(subscriber); ReactiveStreamsCompliance.TryOnSubscribe(subscriber, new MaybeSubscription(subscriber, Promise)); Promise.Task.ContinueWith(t => { ReactiveStreamsCompliance.TryOnError(subscriber, t.Exception); }, TaskContinuationOptions.NotOnRanToCompletion); }
/// <summary> /// TBD /// </summary> /// <param name="subscriber">TBD</param> public void Subscribe(ISubscriber <T> subscriber) { try { ReactiveStreamsCompliance.RequireNonNullSubscriber(subscriber); ReactiveStreamsCompliance.TryOnSubscribe(subscriber, CancelledSubscription.Instance); ReactiveStreamsCompliance.TryOnError(subscriber, Cause); } catch (Exception e) { if (!(e is ISpecViolation)) { throw; } } }
public void Subscribe(ISubscriber <T> subscriber) { try { ReactiveStreamsCompliance.RequireNonNullSubscriber(subscriber); ReactiveStreamsCompliance.TryOnSubscribe(subscriber, new MaybeSubscription(subscriber, Promise)); Promise.Task.ContinueWith(t => { ReactiveStreamsCompliance.TryOnError(subscriber, t.Exception); }, TaskContinuationOptions.NotOnRanToCompletion); } catch (Exception) { //case sv: SpecViolation ⇒ ec.reportFailure(sv) throw; } }