diff --git a/src/modules/requestIdleCallback/index.js b/src/modules/requestIdleCallback/index.js index b43c7ad4..03f0c64b 100644 --- a/src/modules/requestIdleCallback/index.js +++ b/src/modules/requestIdleCallback/index.js @@ -1,3 +1,6 @@ +/* global window */ +import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment'; + const _requestIdleCallback = function (cb) { return setTimeout(() => { const start = Date.now(); @@ -14,8 +17,10 @@ const _cancelIdleCallback = function (id) { clearTimeout(id); }; -const requestIdleCallback = window.requestIdleCallback || _requestIdleCallback; -const cancelIdleCallback = window.cancelIdleCallback || _cancelIdleCallback; +const isSupported = canUseDOM && typeof window.requestIdleCallback !== 'undefined'; + +const requestIdleCallback = isSupported ? window.requestIdleCallback : _requestIdleCallback; +const cancelIdleCallback = isSupported ? window.cancelIdleCallback : _cancelIdleCallback; export default requestIdleCallback; export { cancelIdleCallback };