角度异步查询请求

时间:2016-05-23 11:20:14

标签: javascript angularjs angular-promise angular-http

我有两个在AngularJS中使用query的例子:

第一:

requests.query().$promise.then(function(requestResponse) {
    myFunction(requestResponse);
});

第二:

requests.query(function(requestResponse) {
    myFunction(requestResponse);
});

这2个样本是否相同?在这两种情况下,是否使用promises来获取数据异步?

1 个答案:

答案 0 :(得分:0)

是的,两者都是一样的,除了你可以在第二个例子中传递null(无参数)以避免混淆:

requests.query(null, function(requestResponse) {
         myFunction(requestResponse);
});

查看您的问题,requests服务创建的query似乎提供了5种方法,而$promise方法就是这5种方法中的一种。

所有这5个方法都返回一个具有then()对象的对象,您可以使用then()函数来获得成功&失败的情况。因此,您的第一个代码段基于此。

现在,所有这5种方法也接受最后两个参数作为成功&失败回调是$promise函数的简写,所以这里是你的第二个片段(Angular内部使用$http调用返回的Resource.action([parameters], [success], [error])

  

类对象或实例对象上的操作方法可以是   使用以下参数调用:

     
      
  • HTTP GET" class"行动:Resource.action([parameters], postData, [success], [error])
  •   
  • 非GET" class"行动:instance.$action([parameters], [success], [error])
  •   
  • 非GET实例操作:50pt
  •   

所以这是你的第二个片段。总结是,是的,两者都是同一件事。