首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么Promise.all().then()仍然使输出同步?

Promise.all().then()仍然使输出同步的原因是因为Promise.all()方法返回的是一个新的Promise对象,该Promise对象会在所有传入的Promise对象都变为resolved状态后才会变为resolved状态。而.then()方法是在Promise对象变为resolved状态后执行的回调函数,因此.then()方法中的代码会在所有传入的Promise对象都变为resolved状态后才会执行。

具体来说,Promise.all()方法接收一个由多个Promise对象组成的数组作为参数,并返回一个新的Promise对象。这个新的Promise对象会在数组中的所有Promise对象都变为resolved状态后才会变为resolved状态,或者在数组中的任何一个Promise对象变为rejected状态后立即变为rejected状态。

当Promise.all()方法返回的新的Promise对象变为resolved状态后,.then()方法中的回调函数会被添加到微任务队列中,等待执行。由于微任务队列中的任务会在当前任务执行完毕后立即执行,因此.then()方法中的回调函数会在当前任务执行完毕后立即执行,即使.then()方法在代码中的位置在Promise.all()方法之后。

总结起来,Promise.all().then()仍然使输出同步是因为Promise.all()方法返回的新的Promise对象会在所有传入的Promise对象都变为resolved状态后才会变为resolved状态,而.then()方法中的回调函数会在新的Promise对象变为resolved状态后立即执行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券