猿问

javascript异步执行时候是不是等主线程都执行完毕之后才执行回调函数?

我们说javascript是单线程异步的,通过回调函数实现异步。


那什么时候执行回调函数呢?


通常我们是说当线程空闲的时候才会执行事件循环中的队列中的回调,那么什么时候才算是主线程空闲呢?如果主线程中有很多代码需要执行,是不是事件循环队列中的回调就不会按时执行了


    setTimeout(function(){

        console.log(1);

    },2000);

    for(let i=0;i<10000000){

        //一些代码

    }

    ....后面还有很多代码需要执行 

还有一个事件驱动,既然是事件驱动,那么如果触发了一个事件,应该会立即执行该事件的回调函数,但是如果主线程中还有很多代码未执行完,那么这个事件的回调就不会执行,这样不是效率会特别低吗?


希望有人能给我解答一二。


撒科打诨
浏览 500回答 1
1回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答