将$promise数据放入Javascript数组中

Put $promise data in a Javascript array

本文关键字:Javascript 数组 promise 数据      更新时间:2023-09-26

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

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中。这看起来也不是最好的方法。

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

简单的答案是调用.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
});