添加值后对象为空 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);
}
...
}
我是 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);
}
...
}