From 82ec4f1c02a8f9360c89ec8f4f2891873ea6f295 Mon Sep 17 00:00:00 2001 From: Mateusz Podlasin Date: Tue, 21 Feb 2017 04:27:41 +0100 Subject: [PATCH] fix(bindNodeCallback): errors thrown in callback will be scheduled if a scheduler is provided (#2344) When operator is passed a scheduler, use that scheduler to call error in observer when error object is passed to callback or calling input function fails, so that all kinds of errors cause the same behaviour. --- src/observable/BoundNodeCallbackObservable.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/observable/BoundNodeCallbackObservable.ts b/src/observable/BoundNodeCallbackObservable.ts index 3bc7574155..674f3ff7fb 100644 --- a/src/observable/BoundNodeCallbackObservable.ts +++ b/src/observable/BoundNodeCallbackObservable.ts @@ -153,7 +153,7 @@ function dispatch(this: Action>, state: DispatchState) { const err = innerArgs.shift(); if (err) { - subject.error(err); + self.add(scheduler.schedule(dispatchError, 0, { err, subject })); } else if (selector) { const result = tryCatch(selector).apply(this, innerArgs); if (result === errorObject) { @@ -171,7 +171,7 @@ function dispatch(this: Action>, state: DispatchState) { const result = tryCatch(callbackFunc).apply(context, args.concat(handler)); if (result === errorObject) { - subject.error(errorObject.e); + self.add(scheduler.schedule(dispatchError, 0, { err: errorObject.e, subject })); } }