Promise 和 setTimeout 知识

https://mp.weixin.qq.com/s?__biz=MjM5MDA2MTI1MA==&mid=2649130471&idx=1&sn=bdc07e687e23bf70ecb5a6e032b77e5b&chksm=be58a24a892f2b5cb50d258db651b33892cba73c5834d5477f849ad58b359905e0453b3093d6&scene=27
英文 | https://javascript.plainenglish.io/6-interview-questions-that-combine-promise-and-settimeout-34c430fc297e

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

第二个宏任务
const timer3 = setTimeout(() => {
console.log(‘timer3’)
}, 0)
第三个红任务
const timer2 = setTimeout(() => {
console.log(‘timer2’)
}, 0)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
start timer1 promise1 timer2

在这里插入图片描述
console.log(‘timer1’);
const promise1 = Promise.resolve().then(() => { console.log(‘promise1’)
console.log(‘promise1’)
})

console.log(‘timer2’)
在这里插入图片描述

| console.log(‘promise1’);
const timer2 = setTimeout(() => {
console.log(‘timer2’)
}, 0)
| console.log(‘promise2’) |

setTimeout(() => {
console.log(‘timer2’)
}, 0)

console.log(‘timer1’)
const promise2 = Promise.resolve().then(() => {
console.log(‘promise2’)
})

这道题写错了
start
promise1
timer2
timer1
promise2
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
|---------------------------------宏----------------------------|-----------------------------微--------------------------|

它处于pending 状态。还创建了一个延迟为 1 秒的计时器。
new Promise((resolve, reject) => {
const timer1 = setTimeout(() => {
resolve(‘success’) // 3
}, 1000)
})

promise1.then(() => {
throw new Error(‘error!!!’)
})
因为 promise1 目前处于 Pending 状态,所以 promise1.then() 的回调函数还不会加入到微任务队列中。

promise1 仍处于 Pending 状态。
console.log(‘promise1’, promise1) 1 spending
promise2 仍处于 Pending 状态。
console.log(‘promise2’, promise2) 2 spending
error
setTimeout(() => {
console.log(‘promise1’, promise1); 4 resoved full
console.log(‘promise2’, promise2); 5 error
}, 2000)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值