代码之家  ›  专栏  ›  技术社区  ›  Vivendi

将$promise数据放入Javascript数组

  •  1
  • Vivendi  · 技术社区  · 12 年前

    我正在从如下资源获取数据:

    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 财产也出现在前言中。这看起来也不是最好的方法。

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

    1 回复  |  直到 11 年前
        1
  •  3
  •   Benjamin Gruenbaum    12 年前

    简短的回答是呼叫 .toJSON() -这样做将剥夺$promise和$resolved财产,并允许您使用 angular.forEach 就像在旧版本的Angular中一样。

    类似于:

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