我有一个链接数组可以从中获取数据。我如何等待它完成该过程并从 axios 中获取数据。
function site1(url,arr){
for(i=0;i<arr.length;i++){
axios.get(url)
.then(response=>{
const $=cheerio.load(response.data);
//get desired data from site
//modify the array
}
}
}
现在我如何让我的代码等待此过程完成并从中获取修改后的 arr。
最佳答案
创建 Promise 并推送到数组中,然后解析所有内容以获取值。
function site1(url, arr) {
let promises = [];
for (i = 0; i < arr.length; i++) {
promises.push(
axios.get(url).then(response => {
const $ = cheerio.load(response.data);
return $;
})
);
}
return Promise.all(promises);
}
site1("https://google.com", [1, 2, 3, 4]).then(results => {
console.log(results);
});
//简单:
const urls = ["url1", "url2"];
const promises = urls.map(url => axios.get(url));
Promise.all(promises).then(results => {
console.log(results);
});
关于javascript - 在 for 循环中使用 axios.get,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60919388/