javascript - AngularJS Promise 已解决但无法访问数据

标签 javascript angularjs promise angular-promise

var promise = GetQuestions.quote.get();
console.log(promise);
promise.$promise.then(function(quote) {
  $scope.quotes = quote;
  console.log($scope.quotes);
  for( quote in $scope.quotes){
     console.log(quote.cite);
  }
});

工厂

.factory('GetQuestions', ['$resource', function($resource){
   return {
      quote: $resource('**Resource Link**', {}, { get: { method: 'GET', isArray: true }})
   };
}])

这是console.log( promise ):

[$promise: Promise, $resolved: false]

这里是console.log($scope.quotes): enter image description here

console.log(quote.cite) 日志未定义

问题:

我的问题是我无法访问“引用”,据说 promise 已经解决,但我似乎无法正确访问数据。我尝试过执行promise.then()(而不是promise.$promise.then()),但是我收到一条错误消息,告诉我promise.then()不是一个函数。我不知道这是为什么。有什么帮助吗?

最佳答案

尝试代替 for var in list 语法

$scope.quotes.forEach(function(quote) {
    console.log(quote.cite);
});

for var in list 不应该用于迭代数组。它的预期目的是迭代对象属性。当你使用它来迭代数组时,你经常会得到奇怪的行为。

参见this SO question .

关于javascript - AngularJS Promise 已解决但无法访问数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43121404/

相关文章:

javascript - 3D CSS 和 jQuery 画廊

Javascript:如何隐藏对象的属性?

javascript - 在 DataTables 表加载 Ruby on Rails 时显示微调器

angularjs $http.get 让 json 在服务层不起作用

javascript - Angular js Bootstrap 按钮禁用

javascript - 已声明工厂中的问题 : AngularJs

jquery - 如何正确打破 promise 链?

javascript - 定位不正确

javascript - 带有 ES6/Bluebird promise 的对象方法

javascript - Cypress :每个人都有内部 promise - 打破循环