Discuss / JavaScript / 既然JS是单线程的,那是如何完成所谓的并行任务的呢?

既然JS是单线程的,那是如何完成所谓的并行任务的呢?

Topic source

Exmlyshy

#1 Created at ... [Delete] [Delete and Lock User]

经找资料后自己的理解:JS引擎是单线程的,但是浏览器是多线程的,其执行的方法如setTimeOut是由浏览器来调度的,计时器也是一个单独的线程(并不是JS引擎来计时)。而Promise.all(iterable) 方法返回一个 Promise 实例,其内部方法串行执行,比如P1先计时完成,浏览器的触发线程就将P1方法放到JS队列中由JS引擎来执行。


  • 1

Reply