promise面试题

如图,请问为什么输出是0、1、2、3、4、5、6?
大概知道是跟微任务有关。但是不知道具体的原因。求解答。谢谢!#牛客帮帮团来啦!有问必答#
全部评论
【难度拉满的Promise魔鬼面试题【渡一教育】-哔哩哔哩】 https://b23.tv/Gd87oWI
2
送花
回复
分享
发布于 04-30 23:13 辽宁
输出结果与Promise的异步执行过程有关,同时也涉及到JavaScript引擎的事件循环机制(Event Loop)。 第一个Promise链: Promise.resolve().then()会立即执行,输出0。 然后返回一个新的Promise对象,该对象的值为4。 下一个then()方***等待上一个then()方法处理完成,然后获取返回的Promise对象的值,并输出4。 第二个Promise链: Promise.resolve().then()会立即执行,输出1。 接下来的所有then()方法都会立即执行,依次输出2、3、4、5、6。 因此,最终的输出顺序是0、1、2、3、4、5、6。这是因为在JavaScript的事件循环机制中,所有的微任务都会在下一个宏任务执行之前执行。 如果还是不理解,可以继续追问哦
点赞
送花
回复
分享
发布于 04-25 09:57 天津
滴滴
校招火热招聘中
官网直投
听群友说promise. then链式调用太多次时候会换一个then去执行
1
送花
回复
分享
发布于 04-29 09:30 北京
蹲蹲答案
1
送花
回复
分享
发布于 04-30 22:52 湖北
可以看看这篇文章 https://juejin.cn/post/7018765637870698503
点赞
送花
回复
分享
发布于 05-01 10:35 香港
写一个promise就知道了
点赞
送花
回复
分享
发布于 05-02 10:47 北京
不是。单纯就是你一次我一次。只是return会多走两次。
点赞
送花
回复
分享
发布于 05-02 18:50 湖南

相关推荐

2 8 评论
分享
牛客网
牛客企业服务