如图上面结果显示,异步操作更改原数组时只对异步函数内有效,对异步函数外并无作用,此时需要用到Promise对象,使异步转同步执行,如下:
function pushData(arr, value) {
return new Promise((reslove) => {
setTimeout(() => {
arr.push(value);
console.log('push data over', value)
reslove();
}, 1000);
})
}
async function each() {
let data = [];
let sourse = [1, 2, 3, 4, 5];
for (let value of sourse) {
await pushData(data, value);
}
console.log(data)
}
each();