创建1个 promise 执行链,可手动暂停、继续、取消、结束、重启
npm i @liuyunjs/promise-chain --S
yarn add @liuyunjs/promise-chain
chain: () => Operators;
创建一个执行链, 返回一组操作符
use: (onFulfilled?: (valueOrReason: any, operators: Operators) => any, onRejected?: (valueOrReason: any, operators: Operators) => any) => number;
向执行链中添加一组任务,返回本组任务的下标;可使用 eject 取消任务
从执行链中取消对应任务
启动执行链,已经被启动的执行链如果需要重启应该调用 rerun 方法
暂停正在执行中的执行链,可传入一个参数替代目前执行链的结果
重新启动一个暂停中的执行链,可传入一个参数替代目前执行链的结果
停止正在执行中的执行链,调用后 run 函数会变为 fulfilled 可传入一个参数替代执行链的结果, 就是 run 函数最终执行完成的返回值
重新启动执行链, 可传入一个参数替代执行 run 时传入的参数
取消执行中的执行链,调用后 run 函数会变为 rejected 可传入一个字符串作为 run 函数最终失败的错误提醒
import { chain } from '@liuyunjs/promise-chain';
const operators = chain();
operators.use(
(params,operators) => {
console.log(params);
return new Promise((resolve, reject) => {
setTimeout(() => {
// operators.restart('restart');
// operators.pause('pause');
// operators.rerun('rerun');
// operators.stop('stop');
// operators.cancel('cancel');
// reject(new Error('reject'));
resolve('setTimeout');
}, 3000);
});
},
(reason,operators) => {
console.log('err', reason);
return Promise.reject(reason);
},
);
operators.run('chain run').then(console.log, console.log);