添加值后对象为空 Axios

Object Empty after adding values Axios

我是 javascript 的新手,需要帮助解决这个问题。我读了很多文章但无法解决这个问题,有人可以更正我的代码。 这里, links = 包含 javascript 代码的 URL 数组, 响应 = javascript 代码出现在 URL

 var code = {}

links.forEach(url => {
       axios.get(url)
            .then(response => {
                  code[`file${i++}.js`] = response.data
             })
             .catch(err => {
                  console.error(err)
             })
});

// Come here only when the above loop has finished execution
//  dosomething with variable code

console.log(code)

当我打印可变代码时,它是一个空对象。我想收集代码对象中的所有值,然后继续。

注意-我想在上面的循环完成后继续执行下一步。

由于您有一个异步调用来填充对象,如果您在循环后立即打印,数据将不可用。

你应该使用 async-await 和 Promise.all

async function someFunc() {
...

    try {

        var code = {}

        const promises = links.map(url => {
               return axios.get(url)
                    .then(response => {
                          code[`file${i++}.js`] = response.data
                     })
                     .catch(err => {
                          console.error(err)
                     })
        });
        await Promise.all(promises);

        console.log(code)

    }catch(err) {
      console.log(err);
    }
    ...
}