promise与async await结合使用
昨天看了一道字节外包的面试题
const list = [1, 2, 3];
const square = num => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(num * num);
}, 1000);
});
}
function test() {
// 修改这里的代码
list.forEach(async x => {
const res = await square(x);
console.log(res);
});
}
test()
需要修改的是把同步执行的数组替换成换成异步打印。
在测试以后我们可以-验证,forEach和for循环不同的是for循环可以修改数组的值,且forEach取不到具体某一项的值,这里的异步说的是每执行一次数组循环,就执行一步test()方法,
const list = [1, 2, 3];
const square = num => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(num * num);
}, 1000);
});
}
function test() {
for(let x of list) {
var res = await square(x)
console.log(res)
}
}
test()