是否有一种方法可以将一个 Promise 的返回值沿着链传递给下一个 Promise,而不是传递给下一个 Promise?目前,我们通常嵌套 promise 将值保留在函数范围内,如下所示:
return getOrder()
.then(function (order) {
return getOrderlines(order)
.then(function (orderLines) {
//do something with order and orderlines
processOrderAndOrderlines(order, orderLines);
});
})
.then(function () { //do something else
});
是否有可能以某种方式将订单对象传递到 promise 链中以获得类似于以下内容的内容:
return getOrder()
.then(function (order) {
return getOrderlines(order);
})
.then(function (orderLines) {
//do something with order and orderlines
processOrderAndOrderlines(order, orderLines);
});
.then(function () { //do something else
});
最佳答案
您可以在外部范围定义一个变量并将其设置在 Promise 内部:
var order, orderLines;
return getOrder()
.then(function (result) {
order = result;
return getOrderlines(order);
})
.then(function (result) {
//do something with order and orderlines
orderLines = result;
processOrderAndOrderlines(order, orderLines);
});
.then(function (result) { //do something else
});
关于javascript - 扁平化 AngularJS 中的嵌套 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28342608/