javascript - 我可以在 Promise.all() 中有多个 .finally() 和多个 .catch() 吗?
问题描述
var p1 = new Promise((resolve, reject) => {
resolve('p1');
});
var p2 = new Promise((resolve, reject) => {
resolve('p2');
});
Promise.all([
p1.finally(() => { console.log("p1 completed"); }),
p2.finally(() => { console.log("p2 completed"); }),
]).then(values => {
console.log(values[0]);
console.log(values[1]);
}).finally(() => {
console.log("all() completed");
我想我只在网络上看到了结尾有一个 .finally() 的示例 [1]:https ://i.stack.imgur.com/HeQV8.png
解决方案
当然,finally
是一个可链接的 promise 方法,就像catch
(唯一的区别是它的回调不带参数)。您可以根据任何承诺多次使用它。
Promise.all([
p1.finally(() => { console.log("p1 completed"); }),
p2.finally(() => { console.log("p2 completed"); }),
]).finally(() => {
console.log("all() completed");
})
推荐阅读
- python - 支持向量回归:“方法”对象不可下标
- google-apps-script - 在一个新的谷歌工作表插件中不断加载
- swift - 如何处理 Swift 中的特殊 URL 字符?
- reactjs - react native 如何通过“抽屉”传递信息
- javascript - 如何在 Material UI 版本 5 中配置 RTL(从右到左)支持
- database - dolphindb 是否有开发计划支持嵌入列表作为表中的列?
- html - Jquery 选项卡菜单 cookie
- jconsole - 为什么我在尝试使用 jconsole 远程连接时收到 Unsupported protocol:remote+http 错误
- python - 规范化 json 但保持 id 从顶层 -
- openlayers - OpenLayers 6:地图渲染不会在缩放时发生