美文网首页
事件循环(the Event Loop)、宏任务(macrota

事件循环(the Event Loop)、宏任务(macrota

作者: Ricoli | 来源:发表于2019-03-01 22:32 被阅读0次

    开篇

    我们都知道JavaScript是单线程的语言,它不像大多数语言可以开启多线程,当处理一些阻塞并且很慢的操作时,它可以通过多线程使操作变成异步(例如读取文件等IO操作)。其实JavaScript也有同步异步的区分。首先来看一下同步与异步的区别

    // 同步
    alert('阻塞中...')
    console.log('待执行')
    
    // 异步
    setTimeout(() => {
        alert('阻塞中...')
    }, 1000)
    console.log('待执行')
    
    image image

    从上面俩张图可以看到区别,alert()同步会阻塞应用,导致下面代码只好等待其完成,而setTimeout异步则不需要等待,log可以先执行。那刚才说JavaScript没有多线程,它又是如何实现异步操作的呢,这里就要说到事件循环啦。

    正题

    相关文章

      网友评论

          本文标题:事件循环(the Event Loop)、宏任务(macrota

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