タグ

JavaScriptとasyncに関するshimanpのブックマーク (2)

  • 4歳娘「パパ、Promiseやasync/awaitって何?」〜Promise編〜 - Qiita

    setTimeout(() => console.log(5), 1000); setTimeout(() => console.log(4), 1000); setTimeout(() => console.log(3), 1000); setTimeout(() => console.log(2), 1000); setTimeout(() => console.log(1), 1000); setTimeout(() => console.log(0), 1000); よめ太郎「↑このコードを実行するのに、合計で何秒かかると思う?」 娘「ええと、setTimeout()は確か」 娘「タイマーをセットするメソッドだから」 娘「1,000ミリ秒後・・・つまり1秒後にconsole.log(5)が実行されるよね」 よめ太郎「せやな」 娘「その後、次の行が処理されるから」 娘「また1秒経過し

    4歳娘「パパ、Promiseやasync/awaitって何?」〜Promise編〜 - Qiita
  • Node.jsのためのasync必修パターン(1): 同期パターン

    node.jsはnon-blocking処理を行うため、書き手の意図しない順序で処理が実行されることがあります。それでは困ることもあるため同期をとって処理を行うパターンについて書きます。例えばA、B、C、Dという処理があり、A、B、Cの3つが終わってからDが行われることを保証したい場合の必須のパターンです。 A、B、Cという3つの処理では、それぞれDBに問い合わせを行い、Dという処理では3つのDB問い合わせの結果を使って集計の処理を行いたいような場面を考えてみます。a(); b(); c(); d();上のように普通に書くと、node.jsでは折々の状況に応じてaからdまでの処理を非同期に実行します。dが一番最初に実行されるかもしれません。困ります。そこで、A、B、Cの3つの処理が3つとも完了した後にDが実行されるようにするパターンを書きます。// sync.js var wait = f

  • 1