javascript - ngResource 如何将 promise 附加到数组

标签 javascript angularjs ngresource

我试图了解 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/

相关文章:

javascript - Angular 图添加水平线

node.js - AngularJS + TowerJS 教程/资源

angularjs - Angular ng-repeat : Keep focus to input when order changes

angularjs - 通过 angularjs 从 REST api 建模关系数据

JavaScript 函数别名似乎不起作用

javascript - jQuery 选项卡,多个选项卡只有一个面板

javascript - ngresource 在成功响应中设置全局变量

javascript - 从 JSON 文件解析 HTML 时 ngResource 不起作用

javascript - 我无法在 React.js 中访问 "this.props.match.params.id"

javascript - 如何装饰 Web Component 类