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

2019-03-01  本文已影响0人  Ricoli

开篇

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

// 同步
alert('阻塞中...')
console.log('待执行')

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

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

正题

上一篇下一篇

猜你喜欢

热点阅读