node.jsで、A処理が終わったらB処理を実行するアレを今更書いてみる | ハイテク好きが楽しめるウェブメディア off.tokyo


node.jsに限らず、非同期処理を書いてると、上から順番に処理が走らずに変数が未定義のまま次の処理が走ってしまうことがあります。

これを解決するためには、コールバックみたいなものを書いて、処理Aがリターンされたら、処理Bを実行するみたいなことを書かないといけません。

まあ、この手の詳しいことはいくらでも詳しく書いてる情報があるので、今回の記事は備忘録みたいな感じで書くだけです。

書いたコードはこんな感じです。

    async function A() {
      try {
        // この中でawaitなりで非同期処理でapiとか叩く
         return "返り値";
      } catch (err) { 
        console.log("エラー発生");
        console.log(err);
      }
    }

こんな感じですね。tryの中でapiなりを叩いて、それを受け取ったらリターンする。

    A().then(result => {
      console.log("Aの処理がリターンされたらBを発動させる"); 
      B(result)
    });

resultはA()を実行して返ってきた値です。

非同期処理で普通に書いてると未定義で進んでしまうのを防ぎます。


node.jsで、A処理が終わったらB処理を実行するアレを今更書いてみる | ハイテク好きが楽しめるウェブメディア off.tokyo