js随笔

作者: 浅阳律洳冬天的风 | 来源:发表于2021-07-05 22:36 被阅读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()
    
    

    相关文章

      网友评论

          本文标题:js随笔

          本文链接:https://www.haomeiwen.com/subject/usvvtktx.html