我正在尝试将 URL 数组异步发送到缩短 URL 并将响应写入新数组的 API,我的问题是:
如何在所有 promise 都 resolve 之后执行某些事情?
我的代码
linkList = ['https://www.link1.com', 'https://www.link2.com'];
adsList = []
let ads = async () => {
const req = axios(apiUrl + linkList)
const res = await Promise.resolve(req)
adLinks.push(res.data.shortenedUrl)
console.log(adsList)
// Here, it shows a updated array everytime a promise is resolved
}
ads()
console.log(adsList) // Returns [], because the promises aren't resolved by the time it runs
我希望在 adsList
中有一组缩短的 URL
最佳答案
我猜 axios
实际上是您的异步请求,在这种情况下,这应该是您获取缩短网址列表所需的全部内容:
const linkList = ['https://www.link1.com', 'https://www.link2.com'];
const adsList = await Promise.all(
linkList.map(url =>
axios(apiUrl + url).then(({data: shortenedUrl}) => shortenedUrl)
)
);
关于javascript - 如何将 axios 响应数据添加到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54031776/