$q 中顺序执行和并行执行的区别
Difference between Sequential and Parallel executing in $q
两者都在执行异步操作的时候而已。
- But how the
$q
handle for this is a Sequential call or Parallel call on runtime?
- and let me brief explanation about the Difference between Sequential and Parallel executing in angular $q
Parallel Execution是不等待上一个进程完成,Sequential是一个进程一个接一个地执行。
$q服务用于异步调用(并行执行|promise处理),默认并行执行,不支持顺序执行。
如果你想要顺序执行,你必须手动处理它,这意味着在从一个调用获得响应后你再进行另一个调用。
var promise;
promise.then(fun(){
var promise;
promise.then(fun(){
})
})
并行执行承诺:
var promise1 = promiseAPI(params1);
var promise2 = promiseAPI(params2);
var promise1and2 = $q.all([promise1, promise2]);
要按顺序执行承诺,return 下一个承诺到第一个承诺成功处理程序:
var promise1 = promiseAPI(params1);
var promise1then2 = promise1.then(function() {
var promise2 = promiseAPI(params2);
//return to chain
return promise2;
});
因为调用承诺的 .then
方法 return 是一个新的派生承诺,所以很容易创建承诺链。可以创建任意长度的链,并且 因为一个承诺可以用另一个承诺解决(这将进一步推迟其解决方案),因此可以 pause/defer 解决承诺在链中的任何一点。
两者都在执行异步操作的时候而已。
- But how the
$q
handle for this is a Sequential call or Parallel call on runtime?- and let me brief explanation about the Difference between Sequential and Parallel executing in angular $q
Parallel Execution是不等待上一个进程完成,Sequential是一个进程一个接一个地执行。
$q服务用于异步调用(并行执行|promise处理),默认并行执行,不支持顺序执行。 如果你想要顺序执行,你必须手动处理它,这意味着在从一个调用获得响应后你再进行另一个调用。
var promise;
promise.then(fun(){
var promise;
promise.then(fun(){
})
})
并行执行承诺:
var promise1 = promiseAPI(params1);
var promise2 = promiseAPI(params2);
var promise1and2 = $q.all([promise1, promise2]);
要按顺序执行承诺,return 下一个承诺到第一个承诺成功处理程序:
var promise1 = promiseAPI(params1);
var promise1then2 = promise1.then(function() {
var promise2 = promiseAPI(params2);
//return to chain
return promise2;
});
因为调用承诺的 .then
方法 return 是一个新的派生承诺,所以很容易创建承诺链。可以创建任意长度的链,并且 因为一个承诺可以用另一个承诺解决(这将进一步推迟其解决方案),因此可以 pause/defer 解决承诺在链中的任何一点。