JS-非同期並列処理(featPromise.all)

2818 ワード

会社のプロジェクトは非同期処理の問題に直面した.
問題の状況は以下の通りである

問題の状況


私たちは体を作らなければなりません
体を作るためには、下に腕、足、作った四肢を接続しなければなりません.

トラブルシューティングプロセス


非同期処理であるため,以下の関数構造を採用した.

でも問題があった

前述したように、コードを記述する場合
ボディを作成し、腕をボディに接続した後
ブリッジを生成する操作の処理
実際、体幹が形成されると
腕と足の生成は同時に開始できます
👇 所望の結果を次のように定式化する

今、私たちはこの二人を同時に処理します.
とても適当なやつがいた

promise.all()


パラレル起動順序に依存しない非同期処理

使用方法

配列としてpromiseからなるパラメータを受け入れ,配列中のパラメータは並列に実行する.

解決する


1.胴を生成する
2.生成された身体idを腕に渡して接続を生成し、足が接続を生成する関数

未解の問題


アレイに送信されるid値のdispatchロジック
foreachはドアを回して待っていたら間違っていた
でもforeach文->for...of文に変えると不思議に行かない

에러❌
id배열.forEach(v=>{
          await dispatch(...)
     }
성공⭕
for (const v of id배열) {
       await dispatch(...)
  }

リファレンス

  • いつ承諾しますか.all()を使用しますか?
    https://code-masterjung.tistory.com/91
  • promise.all()はい:
    https://ko.javascript.info/promise-api
  • async/awaitにより、JavaScriptで複数の機能を実現します.
    https://ui.toast.com/weekly-pick/ko_20190826#asyncawait%EB%A1%9C-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C-%EC%97%AC%EB%9F%AC-functions%EB%A5%BC-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%B2%B4%EC%9D%B4%EB%8B%9D-%ED%95%B4%EB%B3%B4%EA%B8%B0
  • 非同期を処理するには、次の手順に従います.
    https://velog.io/@findmytrueself/%EB%B9%84%EB%8F%99%EA%B8%B0%EC%B2%98%EB%A6%AC%EC%BD%9C%EB%B0%B1%ED%95%A8%EC%88%98-Promise-async-await%EC%9E%91%EC%84%B1%EC%A4%91