当调用延迟方法的.then()时?

时间:2014-04-23 10:08:49

标签: angularjs

n $ q文档(https://docs.angularjs.org/api/ng/service/ $ q)写入"然后(successCallback,errorCallback,notifyCallback) - 无论何时或将要解决或拒绝承诺,然后调用其中一个一旦结果可用,就会异步成功或错误回调。 ,他们在谈论什么结果?

1 个答案:

答案 0 :(得分:1)

当您解决延迟对象时,"然后"函数被调用。例如:

function getName(){
   var deferred = $q.defer();

   setTimeout(function(){
      deferred.resolve("This Name Returned"); // <----- The "then" function is
                                               // called here
   }, 1000);

   return deferred;
}

getName().then(function(name){
  // name = "This Name Returned"
}

如果你调用deferred.resolve()或deferred.reject(),&#34;那么&#34;这并不重要。将被召唤。 &#34;然后&#34; function accept 2参数,第一个参数是一个函数,它将在deferred被解析时运行,而第二个参数将在deferred被拒绝时被调用。