gpt4 book ai didi

javascript - AngularJS $q : How to chain promises then do parallel last in the chain?

转载 作者:行者123 更新时间:2023-12-03 04:13:06 27 4
gpt4 key购买 nike

我正在尝试链接一系列任务,返回一个 promise ,在链的最后执行并行执行。下面的代码不起作用,我认为你可以传递任何在“then”内返回 promise 的对象。有没有适当的方法来实现这一点。谢谢。

var startTask = $q.when (  );

startTasks
.then ( validate )
.then ( savePayment )
.then ( refetchPayment )
.then ( saveContactInfo )
.then ( $q.all ( [ updateStatus, submitOrder ] ) )
.then ( successHandler )
.catch ( errorHandler );

最佳答案

啊哈,$q.all( [ updateStatus, SubmitOrder] ) 总是返回立即解决的 promise 。

你想做的可能是这样的(猜测)

.then(function(response) {
return $q.all( [ updateStatus(response), submitOrder(response) ] );
});

看出区别了吗?

[updateStatus,submitOrder] 只是一个函数引用数组,对非 Promise 的数组调用 $q.all 将始终立即返回决心的 promise 。

您需要调用这些函数,因为(我假设)这些函数在调用时返回promises

$q.all 接受一个 Promise 数组并返回一个 Promise,当传递给它的所有 Promise 都得到解析时,该 Promise 就会解析。

关于javascript - AngularJS $q : How to chain promises then do parallel last in the chain?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44246882/

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