React.js Axiosを順番に呼び出す方法は?

ドアンキム
  useEffect(() => {
    new Promise(resolve => {
      setTimeout(() => {
        resolve();
        /* 신규 로트번호 생성을 위한 다음 auto_increment 가져오기 */
        axios
          .get("http://localhost:8080/api/item/autoId")
          .then(response => {
            var output = response && response.data;
            const newLote = lote;
            newLote.lote = nowDate + "-" + output;
            setLote(newLote);
          })
          .catch(response => {
            console.log(response);
          });
      }, 600);
    }),
      new Promise(resolve => {
        setTimeout(() => {
          resolve();
          //재고조회 (로트번호 검색기능)
          axios
            .get("http://localhost:8080/api/item/1")
            .then(response => {
              var output = response && response.data;

              const newLookup = Object.assign({}, lookup);

              for (var i = 0; i < output.list.length; i++) {
                var value = output.list[i].lote_id;
                newLookup.lookup[value] = value;
              }

              newLookup.lookup[lote.lote] = lote.lote;
              setLookup(newLookup);
              console.log(lookup.lookup);

              const newState = Object.assign({}, state);
              newState.columns[1].lookup = lookup.lookup;
              setState(newState);
            })
            .catch(response => {
              console.log(response);
            });
        }, 600);
      }),
      new Promise(resolve => {
        setTimeout(() => {
          resolve();
          /* 출고 이력 불러오기 */
          axios
            .get("http://localhost:8080/api/shipping/history/1")
            .then(response => {
              var output = response && response.data;

              const newState = Object.assign({}, state);
              newState.data = output.list;
              setState(newState);
            })
            .catch(response => {
              console.log(response);
            });
        }, 600);
      });
  }, []);

関数コンポーネントのuseEffect()関数を以下に示します。

以下は、合計3つの非同期通信です。

問題は、これらの非同期通信が毎回同じ順序で実行されないことです。

コードに示されているように、非同期通信をどのように進めますか?

アレックス

出力を入力として厳密に順序付けする場合は、同時実行制御を備えたp-queue、Promiseキューを使用できます

  useEffect(() => {
    const myPromises = [
      () =>
        new Promise(resolve =>
          setTimeout(() => {
            resolve();
            console.log("First(slow)");
          }, 5000)
        ),
      () =>
        new Promise(resolve =>
          setTimeout(() => {
            resolve();
            console.log("Second(fast)");
          }, 100)
        ),
      () =>
        new Promise(resolve =>
          setTimeout(() => {
            resolve();
            console.log("Third(slower)");
          }, 10000)
        )
    ];

    queue.addAll(myPromises);
  }, [queue]);

サンドボックス

コードを更新するには、次のようにします。

  useEffect(() => {
    const myPromises = [
      () =>
        axios
          .get("http://localhost:8080/api/item/autoId")
          .then(x => console.log(x)),

      () =>
        axios
          .get("http://localhost:8080/api/item/1")
          .then(x => console.log(x)),

      () =>
        axios
          .get("http://localhost:8080/api/shipping/history/1")
          .then(x => console.log(x))
    ];

    queue.addAll(myPromises);
  }, [queue]);

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

React.JS-ComponentDidUpdateメソッドはAxios呼び出しに無限ループを提供します

分類Dev

axios呼び出しで状態が更新されている間にユニットテスト(React JS)で状態をアサートする方法は?

分類Dev

React - JS を呼び出すには { } が必要

分類Dev

React Redux:複数の依存アクションを順番に呼び出す方法

分類Dev

React TableとAxiosを使用してAPI呼び出しを行い、React JSで表示するにはどうすればよいですか?

分類Dev

Reactで外部JSを呼び出す

分類Dev

React.jsはコンポーネントをsetStateに呼び出します

分類Dev

react jsのクラスの外でparameter(_id)を使用して削除関数を呼び出す方法は?

分類Dev

react.js を機能させるために script.jsx を呼び出す方法

分類Dev

React JS Web アプリケーションで Axios を使用して Rest Api を呼び出す

分類Dev

REACT JS API呼び出しでJSONネストされた配列を繰り返す方法は?

分類Dev

React.js:フォーム送信からAPI呼び出しを更新する方法

分類Dev

react.jsは子から親関数を呼び出します

分類Dev

React.js-IDでコンポーネントにアクセスしてそのメソッドを呼び出す方法は?

分類Dev

React.jsの他のコンポーネントの値の変更時にTextboxの検証を呼び出す方法は?

分類Dev

React関数でasyncawaitを使用して関数を呼び出す方法。これにより、順番に結果を取得できます。

分類Dev

frisby.jsテストAPI呼び出しが順番に行われるようにする方法はありますか?

分類Dev

React jsの最初のAPI呼び出しからすべてのコンテンツが読み込まれる(遅延読み込み)ときに、2番目のAPI呼び出しを行います

分類Dev

React.jsでコンポーネントを順番にロードする理想的な方法

分類Dev

React.jsフックを呼び出すための注文を強制する方法

分類Dev

react / js関数の呼び出し

分類Dev

<Link>を使用せずにJSの新しいURLにReact-routerクライアント側リダイレクトを呼び出す方法

分類Dev

React JS Ajax呼び出しの読み込みアニメーションを作成するための最良の方法は何ですか?

分類Dev

レンダリング時にonClickが呼び出されるのはなぜですか?-React.js

分類Dev

React.JS-`onClick`イベントで関数を呼び出すと、 `this`が関数で未定義になります

分類Dev

呼び出しをキューに入れ、React.jsの状態の更新を待機します

分類Dev

React.jsで認証トークンを使用してRESTAPIを呼び出す

分類Dev

React.jsの別のクラスコンポーネントからメソッドを呼び出すにはどうすればよいですか?

分類Dev

react.jsの親から関数型コンポーネントの子の関数を呼び出す方法は?

Related 関連記事

  1. 1

    React.JS-ComponentDidUpdateメソッドはAxios呼び出しに無限ループを提供します

  2. 2

    axios呼び出しで状態が更新されている間にユニットテスト(React JS)で状態をアサートする方法は?

  3. 3

    React - JS を呼び出すには { } が必要

  4. 4

    React Redux:複数の依存アクションを順番に呼び出す方法

  5. 5

    React TableとAxiosを使用してAPI呼び出しを行い、React JSで表示するにはどうすればよいですか?

  6. 6

    Reactで外部JSを呼び出す

  7. 7

    React.jsはコンポーネントをsetStateに呼び出します

  8. 8

    react jsのクラスの外でparameter(_id)を使用して削除関数を呼び出す方法は?

  9. 9

    react.js を機能させるために script.jsx を呼び出す方法

  10. 10

    React JS Web アプリケーションで Axios を使用して Rest Api を呼び出す

  11. 11

    REACT JS API呼び出しでJSONネストされた配列を繰り返す方法は?

  12. 12

    React.js:フォーム送信からAPI呼び出しを更新する方法

  13. 13

    react.jsは子から親関数を呼び出します

  14. 14

    React.js-IDでコンポーネントにアクセスしてそのメソッドを呼び出す方法は?

  15. 15

    React.jsの他のコンポーネントの値の変更時にTextboxの検証を呼び出す方法は?

  16. 16

    React関数でasyncawaitを使用して関数を呼び出す方法。これにより、順番に結果を取得できます。

  17. 17

    frisby.jsテストAPI呼び出しが順番に行われるようにする方法はありますか?

  18. 18

    React jsの最初のAPI呼び出しからすべてのコンテンツが読み込まれる(遅延読み込み)ときに、2番目のAPI呼び出しを行います

  19. 19

    React.jsでコンポーネントを順番にロードする理想的な方法

  20. 20

    React.jsフックを呼び出すための注文を強制する方法

  21. 21

    react / js関数の呼び出し

  22. 22

    <Link>を使用せずにJSの新しいURLにReact-routerクライアント側リダイレクトを呼び出す方法

  23. 23

    React JS Ajax呼び出しの読み込みアニメーションを作成するための最良の方法は何ですか?

  24. 24

    レンダリング時にonClickが呼び出されるのはなぜですか?-React.js

  25. 25

    React.JS-`onClick`イベントで関数を呼び出すと、 `this`が関数で未定義になります

  26. 26

    呼び出しをキューに入れ、React.jsの状態の更新を待機します

  27. 27

    React.jsで認証トークンを使用してRESTAPIを呼び出す

  28. 28

    React.jsの別のクラスコンポーネントからメソッドを呼び出すにはどうすればよいですか?

  29. 29

    react.jsの親から関数型コンポーネントの子の関数を呼び出す方法は?

ホットタグ

アーカイブ