Promise.all() 中如果 Promise 返回的是相同的值,是否只会有一个值被传递给 then() 方法?

阅读时长 2 分钟读完

在前端开发中,使用 Promise.all() 可以同时处理多个异步操作,等待它们全部完成后再执行下一步操作。但是,当 Promise 返回的值相同时,是否只会传递一个值给 then() 方法呢?

答案是肯定的。当 Promise.all() 中的所有 Promise 返回的值相同时,只会传递一个值给 then() 方法。

这是因为 Promise.all() 返回的 Promise 对象的 then() 方法只会被调用一次,而且只会传递一个参数,即所有 Promise 返回值组成的数组。如果 Promise 返回的值相同,那么数组中就只有一个值。

下面来看一个示例代码:

在上面的代码中,p1 和 p2 都返回了 1。当它们同时传递给 Promise.all() 方法时,then() 方法只会被调用一次,并且只会传递一个值 [1]。

那么,当 Promise 返回的值不相同时呢?每个 Promise 返回的值都会单独传递给 then() 方法。下面是一个示例代码:

在上面的代码中,p1 返回 1,p2 返回 2。当它们同时传递给 Promise.all() 方法时,then() 方法会被调用一次,并且会传递一个值 [1, 2]。

总结一下,当 Promise.all() 中的所有 Promise 返回的值相同时,只会传递一个值给 then() 方法。这个知识点在实际开发中可能不太常用,但了解它可以让我们更好地理解 Promise 的工作原理,从而更好地应用它来处理异步操作。

希望本文对你有帮助!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65e686151886fbafa41bc450

纠错
反馈