面试的时候碰到的题目:将promise数组,循环输出执行。哎,当时不会做。菜的真实!
// 题目
const fn = function(i) {
return new Promise((resolve, reject) => {
setTimeout(() => {
console.log(i)
resolve()
},500)
})
}
var arr1=[1,2,3];
// 1
arr1.reduce((pre,next)=>{
return pre.then( () => fn(next))
},Promise.resolve());
// 2
const loop = async function(arr) {
for (let i = 0; i < arr.length; i++) {
await fn(arr[i])
}
}
loop(arr)