原文:前端 | JS 任务和微任务:promise 的回调和 setTimeout 的回调到底谁先执行?

首先提一个小问题:运行下面这段 JS 代码后控制台的输出是什么 可以先尝试自己分析一下结果,然后再看答案: 怎么样,你猜对了吗 如果对这个输出结果感到很迷惑,这篇文章或许可以帮到你。 PS:文中按照标准分析理论结果,但实际上各个浏览器对任务队列的支持情况很混乱,所以如果你在浏览器执行代码后发现结果不同也不必纠结 总体来说 Chrome 的支持比较好。 如果对 Promise 的用法还不熟悉,可以看 ...

2021-04-03 18:09 0 344 推荐指数:

查看详情

任务任务setTimeoutPromise执行顺序

先以一道面试题做引子: 写出这段程序的输出内容: 如果你看了这道题不知道怎么下手,或者发现结果和自己的答案大相径庭,请继续往下看 1. javascript事件循环首先,你要知道javascript是单线程语言。js任务需要排队顺序执行,如果一个任务耗时过长,后边一个任务 ...

Thu May 09 23:48:00 CST 2019 0 1684
JS中的执行机制(setTimeout、setInterval、promise、宏任务任务

1、执行机制 JS 是单线程的,处理 JS 任务(程序)只能一个一个顺序执行,所以 JS 中就把任务分为了同步任务和异步任务。同步的进入主线程先执行,异步的进入Event Table并注册函数,当指定的事情完成时,Event Table会将这个函数移入事件队列Event Queue,等待主线 ...

Fri Dec 13 00:53:00 CST 2019 0 292
js任务任务 promise

1.概念:宏任务(macrotask )和任务(microtask ) 表示异步任务的两种分类。常见宏任务:I/O 、setTimeout、setInterval;任务Promise.then catch finally、process.nextTick 在挂起任务时,JS 引擎会将 所有 ...

Mon Jul 15 02:29:00 CST 2019 0 1993
setTimeoutPromise任务队列

栈,是指只有在一端进行存取的表结构。可以看做一个打开的箱子,永远只能对最上面的东西进行操作。也就是先进(栈底)后出(必须把上面的全都拿走),后进(栈顶)先出的顺序。 队列,是指排队过安检,先进先出。 在JS的单线程中,任务队列可以有多个。这些队列都是依靠函数调用栈来循环执行,这也就是我们常说 ...

Tue May 15 08:39:00 CST 2018 0 1039
详解回调函数——以JS为例解读异步、回调和EventLoop

回调,是非常基本的概念,尤其在现今NodeJS诞生与蓬勃发展中变得更加被人们重视。很多朋友学NodeJS,学很久一直摸不着门道,觉得最后在用Express写Web程序,有这样的感觉只能说明没有学懂NodeJS,本质上说不理解回调,就不理解NodeJS。 NodeJS有三大核心 ...

Tue Jan 10 21:57:00 CST 2017 0 3217
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM