脑速跟不上手速

122 阅读1分钟

想测试一个东西,然后就随意写了一段代码:

    let a = true    
    setTimeout(() => {
        a = false
    }, 2000)
    
    while(a) {
        console.log('in while')    
    }
    

打开浏览器调试运行,然后tab页卡死了,一直在输出 in while...

转念一想,应该是事件循环导致的,因为当前宏任务一直在执行,虽然在下一个事件循环里有while退出条件,但是下一个tick永远不会到来~~~


记录一下自己的愚蠢~