UNPKG

@beisen/ethos

Version:

beisencloud pc react components

30 lines (22 loc) 762 B
"use strict"; (function () { "use strict"; exports.Promise = require('es6-promise').Promise; module.exports = function (func, wait, immediate) { var timeout; return function () { var context = this, args = arguments; return new exports.Promise(function (resolve) { var later = function later() { timeout = null; if (!immediate) resolve(func.apply(context, args)); }; var callNow = immediate && !timeout; clearTimeout(timeout); timeout = setTimeout(later, wait); if (callNow) resolve(func.apply(context, args)); }); }; }; })();