12345678910111213141516171819202122 |
- var now = require('../time/now');
- var timeout = require('./timeout');
- var append = require('../array/append');
- /**
- * Ensure a minimum delay for callbacks
- */
- function awaitDelay( callback, delay ){
- var baseTime = now() + delay;
- return function() {
- // ensure all browsers will execute it asynchronously (avoid hard
- // to catch errors) not using "0" because of old browsers and also
- // since new browsers increase the value to be at least "4"
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout
- var ms = Math.max(baseTime - now(), 4);
- return timeout.apply(this, append([callback, ms, this], arguments));
- };
- }
- module.exports = awaitDelay;
|