链接承诺并添加要与后续承诺一起返回的其他数据



我有一个关于链接承诺和添加一些要在 .then 中返回的额外数据以及执行另一个 API 请求的问题。 我看过一些类似的帖子,但没有一个在触发另一个 api 请求之前实际添加额外数据,其中需要拖动一些变量来完成所有承诺结果。让我用一些代码来解释这一点:

axios.get(url1)
.then(
res1=>{
return (
res.data.somethingInteresting; // I need this result later
axios.get(url2) // I need this to run and return before the next .then()
)}
)
.then(res2=>{
doSomething(res2);
})

对 url2 的 api 调用取决于对 url1 的 api 调用已经发生。 然后对 url2 进行 api 调用并返回结果。然后,调用 url2 的结果与在 doSomething(( 中调用 url1 的结果一起使用。所以 res2 是调用 url2 和 res.data.somethingFun 的响应的组合,后者来自 cal 到 url1。

是否有可能确保对 url2 的 api 调用发生,但以某种方式抓住 url1 调用的响应结果?我想过设置状态,但这不起作用,因为这是一个异步调用,因此在执行后续函数调用时状态可能尚未更新。

你可以将 Promise.all 传递给下一个,然后

为此目的
return Promise.all([
res.data.somethingInteresting,
axios.get(url2)
])