From 61a0198695304de8dd0523c022ddc618b42dfbf4 Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Tue, 14 Jul 2020 19:04:16 +0200 Subject: [PATCH] Fallback for setImmediate (#2428) --- packages/api/src/promise/Api.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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); }); }); }