javascript - 在 for 循环中使用 axios.get

标签 javascript node.js axios

我有一个链接数组可以从中获取数据。我如何等待它完成该过程并从 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/

相关文章:

javascript - javascript的替代品是什么

node.js 使用 Redis 使用 ttl 创建作业

javascript - 如何在 axios 中设置 POST - multipart/form-data 的 MIME 类型?

javascript - 使用 useEffect 填充多个下拉数据

javascript - 为什么 `this` 不等于 `Object` ,为什么属性是 `undefined` ?

javascript - 弹出下拉项目选择

html - Angular 在刷新时加载 HTML 索引而不是 ng-app.js

node.js - Nodester 上的数据库

javascript - React/JS - 在操作调用的服务器响应上创建条件

javascript - 如何调用 JSON 对象?