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