tanakahdaのプログラマ手帳

プログラミングとかソフトウェア開発とかの備忘録

Promiseで非同期処理を順次実行する方法@JavaScript

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すべて完了

・・・