js随笔

2021-07-05  本文已影响0人  浅阳律洳冬天的风

forEach 中不能有异步代码 否则会直接跳过异步, 先执行后续代码在执行循环内的异步代码块
查阅资料后发现
大概是: forEach 是非同步的循环, 循环内部如果有异步方法, 越过异步方法,先执行循环后的代码, 异步就会被定时器执行;
for 循环是同步的, 会等待异步结束之后再执行循环后的代码

const a = [1,2,3]
function delay(){
  return new Promise(resolve=>{
  setTimeout(()=>resolve('delay执行完毕'),1000)
  })
}

function run(){
   a.forEach(item=>{
    delay().then(res=>{
      console.log(res)
    })
  })
console.log("函数执行完毕")
}
run()

上一篇 下一篇

猜你喜欢

热点阅读