怎么确保在第一个请求成功后再执行下一个请求?

发布时间 2023-11-23 23:24:11作者: __fairy

要确保在第一个请求成功后再执行下一个请求,你可以使用 Axios 库的 Promise 链式调用或 async/await 语法。下面是两种方法的示例:

一、使用 Promise 链式调用:

axios.get('/api/first')
  .then(response1 => {
    // 第一个请求成功后的处理逻辑
    return axios.get('/api/second');
  })
  .then(response2 => {
    // 第二个请求成功后的处理逻辑
    console.log('第二个请求成功');
  })
  .catch(error => {
    // 错误处理逻辑
    console.error('请求发生错误', error);
  });

在上述示例中,首先发起第一个请求,当第一个请求成功后,通过 .then() 方法返回一个新的 Promise 实例,继续发起第二个请求。当第二个请求成功后,进入第二个 .then() 回调函数中进行处理。

二、使用 async/await 语法:

async function makeRequests() {
  try {
    const response1 = await axios.get('/api/first');
    // 第一个请求成功后的处理逻辑

    const response2 = await axios.get('/api/second');
    // 第二个请求成功后的处理逻辑
    console.log('第二个请求成功');
  } catch (error) {
    // 错误处理逻辑
    console.error('请求发生错误', error);
  }
}

makeRequests();

在上述示例中,我们定义了一个异步函数 makeRequests(),使用 async 关键字标记该函数。在函数内部,我们使用 await 关键字等待请求的返回结果,当请求成功后,继续执行下一行代码。如果任何请求发生错误,会进入 catch 块中进行错误处理。