var func1 = () => { return new Promise((resolve, reject) => { setTimeout(() => { console.log("func1"); resolve(); }, Math.random() * 1000); }); } var func2 = () => { return new Promise((resolve, reject) => { setTimeout(() => { console.log("func2"); resolve(); }, Math.random() * 1000); }); } var func3 = () => { return new Promise((resolve, reject) => { setTimeout(() => { console.log("func3"); resolve(); }, Math.random() * 1000); }); } func1().then( resolve => { return func2(); }, reject => { console.log("reject"); } ).then( resolve => { return func3(); }, reject => { console.log("reject"); } ).then( resolve => { console.log("1〜3すべて完了"); }, reject => { console.log("reject"); } );
1回目:
func1 func2 func3 1〜3すべて完了
2回目:
func1 func2 func3 1〜3すべて完了
・・・