不一样的。简单来说,调用then方***返回一个新的Promise(new了一个),在new时候会传入一个executor回调函数(参数为resolve和reject函数),函数内部会判断传入then的onfulfilled回调函数返回值的类型,如果是Promise类型(例如图中的Promse.resolve()执行结果)会先调用它的then方法,并将新Promise的resovle作为参数传递使得下次then的时候获取到4,这时产生了新的微任务并被添加到任务队列中;如果是其他类型例如数字4,直接调用新Promise的resolve将其作为参数传递进去。所以传入then的函数返回的类型是否是Promise会影响执行结果。
点赞 2

相关推荐

牛客网
牛客企业服务