sequence
by Artem
Babel + JSX
function sequence (fn1, fn2, fn3) {
fn1()
.then (() => {
fn2()
.then(() => fn3())
});
}
function sequence2 () {
for (let i = 1; i < arguments.length; i++) {
arguments[i]()
.then(() => {
return arguments[i + 1]();
});
}
}
function asyncFn1() {
return new Promise((resolve) => {
setTimeout(() => {
console.log(1);
resolve();
}, 1000);
});
}
function asyncFn2() {
return new Promise((resolve) => {
setTimeout(() => {
console.log(2);
resolve();
}, 2000);
});
}
function asyncFn3() {
return new Promise((resolve) => {
setTimeout(() => {
console.log(3);
resolve();
}, 3000);
});
}
sequence2(asyncFn2, asyncFn3, asyncFn1);