@iicoding/utils
Version:
Browser 端 - 类型判断 - 类似 koa 的异步compose - sleep - 扩展对象属性 - 扩展 storage 对象功能
27 lines • 896 B
JavaScript
export var composeAsync = function composeAsync(middleware) {
var middlewareLen = middleware.length;
if (middlewareLen === 0) {
return function (arg) {
return arg;
};
}
if (middlewareLen === 1) {
return middleware[0];
}
var dispatch = function dispatch(idx) {
if (idx === middlewareLen) return;
var crtMiddleware = middleware[idx];
for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
params[_key - 1] = arguments[_key];
}
crtMiddleware.apply(void 0, [function () {
for (var _len2 = arguments.length, nextPrams = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
nextPrams[_key2] = arguments[_key2];
}
dispatch.apply(void 0, [++idx].concat(nextPrams));
}].concat(params));
};
return function (params) {
return dispatch(0, params);
};
};