タグ

2022年4月7日のブックマーク (1件)

  • 誤用しがちな Promise.all

    非同期処理を並列実行するときに便利な Promise.all() ですが、雑に使ってしまうと意図した挙動にならないことがあります。 まとめ Promise.all 内で関数を定義する際は即時実行関数式にしなければ実行されない Promise.all に渡す際に await してしまうと意図せず直列処理になってしまう サンプルコード 以下のコードで例示した①・②・③・④のうち、期待した挙動にならないものがあります。 (いずれの実行もエラーにならないものとします) let response; const syncFn = () => {}; const asyncFn = async () => {}; const results = await Promise.all([ // ① syncFn(), // ② asyncFn(), // ③ async () => { const data

    誤用しがちな Promise.all