$ q中顺序执行和并行执行的区别

时间:2017-01-06 07:25:42

标签: angularjs typescript angular-promise q angularjs-q

仅在执行异步操作时两者。

  
      
  • $q处理这个问题的方法是在运行时进行顺序调用还是并行调用?
  •   
  • 让我简要解释角度$ q
  • 中顺序和并行执行之间的差异   

2 个答案:

答案 0 :(得分:2)

并行执行不会等待前一个进程完成,而顺序就是一个接一个地执行进程的事情。

$ q service用于异步调用(并行执行| promise处理),默认情况下它执行并行执行,它不支持顺序执行。 如果你想要一个顺序执行,你必须手动处理它,这意味着在收到一个电话的响应后你再打一次电话。

var promise;
promise.then(fun(){
   var promise;
   promise.then(fun(){
   })
})

答案 1 :(得分:0)

并行执行承诺:

var promise1 = promiseAPI(params1);
var promise2 = promiseAPI(params2);

var promise1and2 = $q.all([promise1, promise2]);

要执行承诺,返回第一个承诺成功处理程序的下一个承诺:

var promise1 = promiseAPI(params1);

var promise1then2 = promise1.then(function() {
    var promise2 = promiseAPI(params2);
    //return to chain
    return promise2;
});

因为调用promise的.then方法会返回一个新的派生promise,所以很容易创建一个promise链。可以创建任意长度的链和,因为承诺可以通过另一个承诺来解决(这将进一步推迟其解决方案),可以在任何点暂停/推迟承诺的解决。链。

- AngularJS $q Service API Reference -- Chaining Promises