diff --git a/packages/api/src/promise/Api.ts b/packages/api/src/promise/Api.ts index 10d2768a05..e226f33d2b 100644 --- a/packages/api/src/promise/Api.ts +++ b/packages/api/src/promise/Api.ts @@ -69,7 +69,9 @@ function decorateCall> 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 { // 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); }); }); }