当 API 调用在自己的函数中时,如何等待 API 调用完成后再进行另一个调用?

问题描述 投票:0回答:2

我是一个 React 菜鸟,有一个 React 组件,其中包含几个内部有 API 调用的函数。然后我想从单独的 onSubmit 函数调用这些函数并进行另一个 API 调用,但我不想在前两个 API 调用完成之前运行第三个 API 调用。

代码设置如下:

function 1 (){
     fetch APIcall
     .then....
}

function 2 (){
     fetch APIcall
     .then....
}

function onSubmit(){
     function1()
     function2()
     fetch APIcall()     // don't want to run this until the other 2 calls are completed
     .then... 
}

我尝试制作 function 1 和 function2 异步函数,但后来我不确定如何等待 onSubmit() 函数中的承诺。这可以通过异步等待来完成,还是有更好的方法来处理这个问题?

javascript reactjs
2个回答
0
投票

使用异步等待

async function apiCall() {
  await function1();
  await function2();
  await function3();
}

通过使用 async/await,您可以在另一个 api 调用之前等待一个 api 响应


0
投票

您有两种方法来处理多个 API 调用。第一次运行 顺序执行,而 Promise.all 并发执行。选择 最适合您需求的方法。

顺序执行(等待每个函数):

async function onSubmit() {
      await function1();
      await function2();
      await function3();
    }

并发执行(Promise.all()):

await Promise.all(
[function1(), function2(), function3()]
);
© www.soinside.com 2019 - 2024. All rights reserved.