function dispatch() {
let chain = Promise.resolve();
let tasks = [];
return {
println(text) {
tasks.push(() => console.log(text));
return this;
},
wait(seconds) {
tasks.push(
() => new Promise((resolve) => {
console.log("再等待", seconds, "秒");
setTimeout(resolve, seconds * 1000)
})
);
return this;
},
waitFirst(seconds) {
chain = chain.then(
() => new Promise((resolve) => {
console.log("先等待", seconds, "秒");
return setTimeout(resolve, seconds * 1000)
})
);
return this;
},
// 执行
exec() {
chain = tasks.reduce((prev, next) => {
return prev.then(next);
}, chain);
tasks = [];
},
};
}
export default dispatch;
链式调用实现
于 2024-01-30 14:23:29 首次发布