为什么我的promise.all返回的结果是promise
时间: 2023-02-16 15:23:54 浏览: 58
Promise.all() 返回的是一个 promise,因为它需要等待所有传入的 promise 都完成(成功或失败)才能确定最终的结果。所以返回的是一个 promise,在这个 promise 成功时,可以获取到所有传入 promise 的返回值。
相关问题
Promise.all为什么返回空值
Promise.all()返回空值是因为在调用Promise.all()时,传入的可迭代对象是一个空数组。根据引用中的解释,当Promise.all()接收到一个空数组时,它相当于Promise.resolve(),因此返回的是一个已解决状态的Promise,其解决值是一个空数组。所以Promise.all([])返回的是Promise {<fulfilled>: Array(0)},表示一个已解决的Promise,解决值是一个空数组。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [分享 5 个你现在就能用上的 Js ES12 新特性(数字分隔符、replaceAll()、Promise.any()、......)](https://blog.csdn.net/qq_41809113/article/details/122014755)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [JS中的异步处理方法之Promise](https://blog.csdn.net/weixin_44416058/article/details/126501653)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
promise.all里面为什么要有promise.resolve
Promise.all() 方法接收一个 Promise 对象数组作为参数,它会将这些 Promise 对象的结果合并成一个新的 Promise 对象,该 Promise 对象的结果是一个数组,数组元素的顺序与 Promise 对象数组的顺序一致。如果 Promise.all() 中的 Promise 对象已经完成,则 Promise.all() 立即返回一个包含所有 Promise 对象结果的新 Promise 对象。但如果 Promise.all() 中的 Promise 对象未完成,则 Promise.all() 方法也不会返回结果,需要等待全部 Promise 完成后才会返回结果。因此,promsie.resolve() 的作用是将非 Promise 值转换成 Promise 对象,以保证 Promise.all() 中所有参数都是 Promise 对象,当参数中有非 Promise 值时,Promise.all() 会自动使用 Promise.resolve() 方法将其转为 Promise 对象,然后再执行后续操作,确保结果的统一性和可靠性。