我试图了解 AngularJS 中的 ngResource 如何能够返回一个数组,但也允许您在其上附加一个 .$promise 以获取 promise 对象。
基本上从下面的例子来看,如果你只是调用查询函数,你会得到一个空数组(当 promise 解析时填充)。
但是,返回值似乎也有一个可以访问的 $promise 属性。这对我来说很奇怪,因为我不确定如何将 promise 附加到数组,只是一个对象。一定有一些关于 javascript 的东西我在这里遗漏了,也许你可以澄清一下。
例如来自 Angular 网站:
// We can retrieve a collection from the server
var cards = CreditCard.query(function() {
// GET: /user/123/card
// server returns: [ {id:456, number:'1234', name:'Smith'} ];
但您也可以使用 $promise 属性访问原始 $http promise:
var User = $resource('/user/:userId', {userId:'@id'});
User.get({userId:123})
.$promise.then(function(user) {
$scope.user = user;
});
angular 是否能够以某种方式为数组提供 $promise 属性?
最佳答案
ngResource 为每个方法返回一个空的 Resource
实例或 Array
实例。这两个实例都被赋予了 $promise 和 $resolved 属性,以便能够添加 promise 调用或直接在 $scope 中使用结果。
如果我没记错的话,当您在 $scope 属性上设置此值时,AngularJS 曾经查看这些属性。
有更多库提供数组自定义方法(如 jQuery)。
ng资源来源:
返回值:
https://github.com/angular/bower-angular-resource/blob/master/angular-resource.js#L562
添加 promise :
https://github.com/angular/bower-angular-resource/blob/master/angular-resource.js#L637
关于javascript - ngResource 如何将 promise 附加到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31748635/