gpt4 book ai didi

javascript - 用 Q 打破动态的 promise 序列

转载 作者:数据小太阳 更新时间:2023-10-29 05:29:52 27 4
gpt4 key购买 nike

我有几个 promise (P1,P2,... Pn)我想按顺序链接它们(所以 Q.all 不是一个选项)并且我想首先打破链条错误。
每个 promise 都有自己的参数。
我想拦截每个 promise 错误以转储错误。

如果 P1、P2、.. PN 是我的 promise ,我不知道如何使序列自动化。

最佳答案

如果您有一个 promise 链,它们都已经开始,您无法启动或停止它们中的任何一个(您可以取消,但仅此而已)。

假设您有 F1,... Fn promise 返回函数,您可以使用 promise 的基本构建 block ,我们的 .then为此:

var promises = /* where you get them, assuming array */;
// reduce the promise function into a single chain
var result = promises.reduce(function(accum, cur){
return accum.then(cur); // pass the next function as the `.then` handler,
// it will accept as its parameter the last one's return value
}, Q()); // use an empty resolved promise for an initial value

result.then(function(res){
// all of the promises fulfilled, res contains the aggregated return value
}).catch(function(err){
// one of the promises failed,
//this will be called with err being the _first_ error like you requested
});

因此,注释较少的版本:

var res = promises.reduce(function(accum,cur){ return accum.then(cur); },Q());

res.then(function(res){
// handle success
}).catch(function(err){
// handle failure
});

关于javascript - 用 Q 打破动态的 promise 序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24261379/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com