2021-02-11 19:51:41 +01:00
|
|
|
export const requestIdleCallback =
|
2021-07-28 17:10:51 +02:00
|
|
|
(typeof self !== 'undefined' &&
|
|
|
|
self.requestIdleCallback &&
|
|
|
|
self.requestIdleCallback.bind(window)) ||
|
2021-09-16 18:06:57 +02:00
|
|
|
function (cb: IdleRequestCallback): number {
|
2020-11-11 19:13:16 +01:00
|
|
|
let start = Date.now()
|
|
|
|
return setTimeout(function () {
|
|
|
|
cb({
|
|
|
|
didTimeout: false,
|
|
|
|
timeRemaining: function () {
|
|
|
|
return Math.max(0, 50 - (Date.now() - start))
|
|
|
|
},
|
|
|
|
})
|
2021-09-16 18:06:57 +02:00
|
|
|
}, 1) as unknown as number
|
2020-11-11 19:13:16 +01:00
|
|
|
}
|
|
|
|
|
2021-02-11 19:51:41 +01:00
|
|
|
export const cancelIdleCallback =
|
2021-07-28 17:10:51 +02:00
|
|
|
(typeof self !== 'undefined' &&
|
|
|
|
self.cancelIdleCallback &&
|
|
|
|
self.cancelIdleCallback.bind(window)) ||
|
2021-09-16 18:06:57 +02:00
|
|
|
function (id: number) {
|
2021-02-11 19:51:41 +01:00
|
|
|
return clearTimeout(id)
|
|
|
|
}
|