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/#)