2020-01-19
描述
创建一个异步函数链。
提示
- 对一个数组中包含异步事件的函数进行遍历
- 当每一个异步函数事件完成时调用
next
代码
const chainAsync = fns => {
let curr = 0;
const last = fns[fns.length - 1];
const next = () => {
const fn = fns[curr++];
fn === last ? fn() : fn(next);
};
next();
};
示例
每隔一秒输出一个日志:
chainAsync([
next => {
console.log('0 seconds');
setTimeout(next, 1000);
},
next => {
console.log('1 second');
setTimeout(next, 1000);
},
() => {
console.log('2 second');
}
]);