相关疑难解决方法(0)

JavaScript Promise.all是否有成功和失败时触发的回调

我误解了Promise.all吗?我在数组中有X个promise,我正在尝试聚合数组的成功/失败率.

以下是我认为我所知道的:

Promise.all采取了一系列承诺.

如果所有承诺都成功,则.then运行回调.

如果其中一个promise失败,则.catch调用回调,传入的参数是单个引发的错误的值.

如果有些成功并且有些失败,则没有回复触发,这是所有承诺的结果.即它不能给你一个类似(伪代码)的数组[success, fail, success, success]- 就像人们所期望的那样,可以在许多JS库中找到它们(ajax,ember等).

它就.then像是一个更像是.success一个函数,而不是一个在所有承诺完成后总是运行的函数,无论一些成功还是一些失败.为什么没有.when .finally .runThisShizNoMatterWhat?或者我错过了什么(非常可能)?

javascript ecmascript-6 es6-promise

11
推荐指数
2
解决办法
9028
查看次数

ES6 Promise.all()错误句柄 - 是否需要.settle()?

假设我有一个Promise.all()处理两个承诺.如果一个承诺产生错误,但另一个承诺解决,我希望能够在Promise.all()结算后根据情况处理错误.

ES6承诺缺少结算方法,我假设有充分的理由.但我不禁想到这个.settle()方法会让我这个问题变得容易多了.

我是以错误的方式解决这个问题,还是通过一种解决方法扩展ES6 Promise,这是正确的做法?

我正在考虑如何使用的一个例子.settle():

Promise.all([Action1,Action2])
.settle(function(arrayOfSettledValues) 
    //if 1 failed but not 2, handle
    //if 2 failed but not 1, handle
    //etc....
)
Run Code Online (Sandbox Code Playgroud)

javascript promise ecmascript-6 es6-promise

9
推荐指数
1
解决办法
4389
查看次数

标签 统计

ecmascript-6 ×2

es6-promise ×2

javascript ×2

promise ×1