promise面试题
如图,请问为什么输出是0、1、2、3、4、5、6?
大概知道是跟微任务有关。但是不知道具体的原因。求解答。谢谢!#牛客帮帮团来啦!有问必答#
大概知道是跟微任务有关。但是不知道具体的原因。求解答。谢谢!#牛客帮帮团来啦!有问必答#
全部评论
【难度拉满的Promise魔鬼面试题【渡一教育】-哔哩哔哩】 https://b23.tv/Gd87oWI
送花
回复
分享
输出结果与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的事件循环机制中,所有的微任务都会在下一个宏任务执行之前执行。
如果还是不理解,可以继续追问哦
送花
回复
分享
滴滴
官网直投
听群友说promise. then链式调用太多次时候会换一个then去执行
送花
回复
分享
蹲蹲答案
送花
回复
分享
可以看看这篇文章 https://juejin.cn/post/7018765637870698503
送花
回复
分享
写一个promise就知道了
送花
回复
分享
不是。单纯就是你一次我一次。只是return会多走两次。
送花
回复
分享
相关推荐
04-28 20:23
门头沟学院 机械类 点赞 评论 收藏
转发