将$ promise数据放入Javascript数组中

时间:2014-08-31 18:49:28

标签: javascript angularjs foreach promise angular-promise

我从这样的资源中获取数据:

var result = someService.getData();
result.$promise.then(function() {
    console.log(result);
});

这给了我以下结果:

1: "200"
2: "1810"
$promise: Object
$resolved: true
__proto__: f

我需要将这些数据放在一个javascript数组中,如下所示:

[[1, 200], [2, 1810]]

我尝试在forEach

中执行此操作
var data = [];
angular.forEach(monthly, function(value, key) {
    var tmp = [];
    tmp[0] = key;
    tmp[1] = value;

    data.push(tmp);
});

但是$promise$resolved属性也出现在foreach中。这也不是最好的方法。

我该如何以正确的方式做到这一点?

1 个答案:

答案 0 :(得分:3)

简短的回答是调用.toJSON() - 这样做会删除$ promise和$ resolved属性,并允许你像在旧版本的Angular中一样正确使用angular.forEach

类似的东西:

var result = someService.getData();
result.$promise.then(function(value) {
    console.log(value.toJSON());//will strip the annoying properties, use here
});