原文:Promise里的代码为什么比setTimeout先执行

当浏览器或者Node拿到一段代码时首先做的就是传递给JavaScript引擎,并且要求它去执行。 然而,执行 JavaScript 并非一锤子买卖,宿主环境当遇到一些事件时,会继续把一段代码传递给 JavaScript 引擎去执行,此外,我们可能还会提供 API 给 JavaScript 引擎,比如 setTimeout 这样的 API,它会允许 JavaScript 在特定的时机执行。 所以,我 ...

2019-06-13 14:17 0 622 推荐指数:

查看详情

重学前端 --- Promise代码为什么比setTimeout执行

首先通过一段代码进入讨论的主题 了解过 Promise 对象的都知道(如果还不了解,可以查看 Promise对象),Promise 新建后会立即执行,所以首先会输出a,这个没有问题。setTimeout 和 then 这两个回调函数会在本轮事件循环结束以后执行,所以第二个输出的是b ...

Wed Apr 24 00:11:00 CST 2019 0 1786
PromisesetTimeout执行顺序

1、示例 2、解释 最需要 解释的是:then和settimeout执行顺序,即setTimeout(fn, 0)在下一轮“事件循环”开始时执行Promise.then()在本轮“事件循环”结束时执行。因此then 函数输出,settimeout后输出 ...

Tue May 05 20:16:00 CST 2020 0 1668
promisesetTimeout执行顺序的问题

提出问题,问题代码为 在控制台运行其结果为: 疑问:既然promise.then和setTimeout都是异步的,那么在事件循环队列中 promise.then的事件应该排在setTimeout后面,那为什么promise.then却在setTimeout前面被打 ...

Tue Dec 25 00:07:00 CST 2018 0 684
关于setTimeoutPromise执行顺序问题

先看一段代码 执行结果: 可以看出PromisesetTimeout()执行。 因为Promise定义之后便会立即执行,其后的.then()是异步里面的微任务。 而setTimeout()是异步的宏任务。 引自https ...

Fri Aug 31 19:21:00 CST 2018 0 6193
promise.then, setTimeout,await执行顺序问题

promise.then VS setTimeout   在chrome和node环境环境中均输出2, 3, 1, 输出2没什么好说的,3和1顺序让人有些意外 原因: 有一个事件循环,但是任务队列可以有多个。 整个script代码,放在了macrotask ...

Fri Jun 22 06:46:00 CST 2018 0 4070
js--->setTimeoutPromise执行顺序

setTimeout(function() { console.log(1) }, 0); new Promise(function(resolve, reject) { console.log(2) for (var i = 0; i < 10000; i++) { if(i ...

Wed Dec 04 18:45:00 CST 2019 0 638
js 关于setTimeoutPromise执行顺序问题

js 关于setTimeoutPromise执行顺序问题 异步 -- PromisesetTimeout 执行顺序 PromisesetTimeout 到底谁先执行 定时器的介绍 ...

Sat Feb 08 01:03:00 CST 2020 0 1252
setTimeoutPromise、Async/Await 的执行顺序

 Javascript 有一个 main thread 主线程和 call-stack 调用栈(执行栈),所有的任务都会被放到调用栈等待主线程执行。 JS调用栈采用的是后进先出的规则,当函数执行的时候,会被添加到栈的顶部,当执行执行完成后,就会从栈 ...

Thu Aug 15 09:50:00 CST 2019 0 813
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM