Closed xiaodongxing closed 3 years ago
/*** async solution ***/ const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); // *** realize part const log = console.log; Promise.prototype.run = Promise.prototype.then; // *** const subFlow = createFlow([() => delay(1000).then(() => log("c"))]); createFlow([ () => log("a"), () => log("b"), subFlow, [() => delay(1000).then(() => log("d")), () => log("e")], ]).run(() => { console.log("done"); }); // *** realize part async function createFlow() { const jobs = [...arguments].flat(Infinity); for (let i = 0; i < jobs.length; i++) { typeof jobs[i] === "function" ? await jobs[i]() : await jobs[i]; } } // ***
Originally posted by @anson09 in https://github.com/sl1673495/blogs/issues/55#issuecomment-839410532
Originally posted by @anson09 in https://github.com/sl1673495/blogs/issues/55#issuecomment-839410532