vtils
Version:
一个面向业务的 JavaScript/TypeScript 实用程序库。
29 lines (28 loc) • 652 B
JavaScript
exports.__esModule = true;
exports.onceMeanwhile = onceMeanwhile;
var _isPromiseLike = require("./isPromiseLike");
/**
* 同一时间对函数的调用只会触发一次运行。
*
* @param fn 函数
* @returns 返回函数调用结果
*/
function onceMeanwhile(fn) {
var running = false;
var result;
var proxy = function proxy() {
if (!running) {
running = true;
var res = fn.apply(void 0, arguments);
if ((0, _isPromiseLike.isPromiseLike)(res)) {
result = res.then(function (_) {
running = false;
return _;
});
}
}
return result;
};
return proxy;
}
;