Fallback for setImmediate (#2428)

This commit is contained in:
Jaco Greeff
2020-07-14 19:04:16 +02:00
committed by GitHub
parent 345a97dc9f
commit 61a0198695
+6 -2
View File
@@ -69,7 +69,9 @@ function decorateCall<Method extends DecorateFn<ObsInnerType<ReturnType<Method>>
catchError((error) => tracker.reject(error))
).subscribe((result): void => {
tracker.resolve(result);
setImmediate(() => subscription.unsubscribe());
typeof setImmediate === 'undefined'
? setTimeout(() => subscription.unsubscribe(), 0)
: setImmediate(() => subscription.unsubscribe());
});
});
}
@@ -87,7 +89,9 @@ function decorateSubscribe<Method extends DecorateFn<ObsInnerType<ReturnType<Met
).subscribe((result): void => {
// We use setImmediate here to ensure that the Promise above (tracker) has resolved, before returning
// the first result. By putting is back in the queue, the promise above is guarded for first execution
setImmediate(() => resultCb(result) as void);
typeof setImmediate === 'undefined'
? setTimeout(() => resultCb(result) as void, 0)
: setImmediate(() => resultCb(result) as void);
});
});
}