プログラミング学習日記

プログラミング学習時のメモ帳。

JavaScript Promise

間違っている場所あったら優しく教えてね

promiseが出てきたので勉強しておく

Prionmiseとは特定のコードの実行が終わった後に別のコードを実行させることができる. 一つ目の実行が終了されるのを待つことができる.

プレースホルダのようなものらしい. 「わかりそう」実行終了結果を使いたいときに大活躍します.

function delay(time) {
    return new Promise(function (resolve) {
        return setTimeout(resolve, time);
    })
}

function SayHello() {
    console.log("hello");
}


console.log("before: delay")
delay(2000).then(SayHello);
console.log("after: delay");

  • 実行結果
$ node sample.js
before: delay                                // すぐに表示される
after: delay                                // すぐに表示される
hello                           // 2000ms後に表示される.

delayが呼ばれるのが最後になっているのがわかる.

だがこのように処理順序を変えたいだけならこう書けば済む話である

console.log(1)
setTimeout(() => {
    console.log(2);
}, 2000);
console.log(3);
  • 実行結果
$ node sample.js
1           // すぐに表示
3          // すぐに表示
2          // 2000ms秒後に表示
#### 参考
[TechRacho](https://techracho.bpsinc.jp/hachi8833/2017_11_16/48168)
[promiseの順序がわかる](http://bevacqua.github.io/promisees/#)

ブログを見ていただきありがとうございました