我有两个在AngularJS中使用query
的例子:
第一:
requests.query().$promise.then(function(requestResponse) {
myFunction(requestResponse);
});
第二:
requests.query(function(requestResponse) {
myFunction(requestResponse);
});
这2个样本是否相同?在这两种情况下,是否使用promises来获取数据异步?
答案 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
所以这是你的第二个片段。总结是,是的,两者都是同一件事。