美文网首页
js的任务队列的一些见解

js的任务队列的一些见解

作者: __Seve | 来源:发表于2017-08-01 18:42 被阅读0次

任务队列又称消息队列

函数分二种
1、一种是同步函数,一个接一个的执行
2、一种异步函数,调用者不会立即拿到预期的结果,而是通过一定的手段才能拿到,那这个歌函数就是异步的
任务也分二种
1.同步任务
一个任务执行完,之后才能执行下一个任务
例如console.log() for循环等 promise里的console.log()
2.异步任务
主线程发出一个异步请求,对应的工作线程(例如浏览器事件触发线程,异步http请求),接受请求并告知主线程已收到,主线程继续执行后面的代码,同时工作线程执行异步任务,工作线程完成任务后,将完成信息放到消息队列,主线程通过实践循环过程去取任务消息,然后执行一定的动作

image.png

例如promise里面的reslove ,reject,then()
settimeout setinterval

从异步过程的角度看,addEventListener 函数就是异步过程的发起函数,事件监听器函数就是异步过程的回调函数。事件触发时,表示异步任务完成,会将事件监听器函数封装成一条消息放到消息队列中,等待主线程执行。

image.png

1 setTimeout(function() {
2 console.log(1);
3 },0);
4 console.log(2);
执行结果2,1。因为只有在执行完第二行以后,主线程空了,才会去任务队列中取任务执行回调函数。
异步的代码和函数,一般会在下一次事件循环中执行

相关文章

  • js的任务队列的一些见解

    任务队列又称消息队列 函数分二种1、一种是同步函数,一个接一个的执行2、一种异步函数,调用者不会立即拿到预期的结果...

  • 关于宏任务微任务的题

    第一道题: 解析:js任务队列有两种,宏任务队列,微任务队列。js的事件循环调度的就是宏任务队列。一个宏任务执行完...

  • 2018-06-08 宏任务和微任务

    js先把宏任务放进宏任务队列里,再把微任务放进微任务队列里,执行的时候先执行宏任务队列里的一个任务,再把微任务队列...

  • js 队列任务

    一、单线程 js是单线程语言,浏览器只分配给js一个主线程,用来执行任务(函数),但一次只能执行一个任务。 二、队...

  • js任务队列

    一、setTimeout的内部执行顺序 setTimeout(code, ms)函数是指在指定的毫秒数(ms)后调...

  • 微任务和宏任务

    JS是单线程的,可以把这个线程叫做主线程,主线程中包含宏任务队列和微任务队列,宏任务所在的队列就叫宏任务队列,微任...

  • js 异步执行顺序

    js的执行顺序,先同步后异步异步中任务队列的执行顺序: 先微任务microtask队列,再宏任务macrotask...

  • 宏队列与微队列

    js执行时有两个异步队列:宏队列和微队列。优先执行微队列中的任务,而且每次执行完宏队列中的任务后,都会查看微队列中...

  • 浏览器中的事件循环

    记忆核心: JS执行: 同步任务在JS主线程(属于渲染进程的线程)执行 异步任务进入任务队列(由事件触发线程维护)...

  • js异步任务队列

     最近在一个项目中,遇到这么一个需求:一个页面中,大概有四五个元素需要按一定次序依次进场,setTimeout来实...

网友评论

      本文标题:js的任务队列的一些见解

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