我是javascript新手,需要帮助解决这个问题。我看了很多文章,但无法解决这个问题,谁能纠正我的代码。这里,链接=一个包含javascript代码的URL数组,响应=该URL上的javascript代码。
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调用来填充对象,所以如果你在循环后立即打印,数据将无法使用。
你应该使用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);
}
...
}