executor功能
This commit is contained in:
parent
87a952aec8
commit
8f3933a4ba
|
|
@ -0,0 +1,5 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param units 各个执行单元,需要流水线执行,可能是同步也可能是异步
|
||||||
|
*/
|
||||||
|
export declare function pipeline(...units: Array<(result?: any) => any>): any;
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
"use strict";
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
exports.pipeline = void 0;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param units 各个执行单元,需要流水线执行,可能是同步也可能是异步
|
||||||
|
*/
|
||||||
|
function pipeline(...units) {
|
||||||
|
const exec = (idx, resultPrev) => {
|
||||||
|
const unit = units[idx];
|
||||||
|
const result = unit(resultPrev);
|
||||||
|
if (result instanceof Promise) {
|
||||||
|
return result.then((resultSync) => exec(idx + 1, resultSync));
|
||||||
|
}
|
||||||
|
return exec(idx + 1, result);
|
||||||
|
};
|
||||||
|
return exec(0);
|
||||||
|
}
|
||||||
|
exports.pipeline = pipeline;
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param units 各个执行单元,需要流水线执行,可能是同步也可能是异步
|
||||||
|
*/
|
||||||
|
export function pipeline(...units: Array<(result?: any) => any>) {
|
||||||
|
const exec = (idx: number, resultPrev?: any):any => {
|
||||||
|
const unit = units[idx];
|
||||||
|
const result = unit(resultPrev);
|
||||||
|
if (result instanceof Promise) {
|
||||||
|
return result.then(
|
||||||
|
(resultSync) => exec(idx + 1, resultSync)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return exec(idx + 1, result);
|
||||||
|
};
|
||||||
|
|
||||||
|
return exec(0);
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue