$ q.all返回状态而不是值 - 为什么

时间:2016-02-03 08:26:13

标签: javascript angularjs q

以下是代码:

$q.all($q.when(3), $q.when(5)).then(function (values) {
    console.log(values);
});

输出如下:

{"$$state":{"status":1,"value":3}}

手册指出:

  

返回将使用数组/散列解析的单个promise   值,每个值对应于相同索引/键的promise   在promises数组/哈希中。如果任何承诺通过a解决   拒绝,由此产生的承诺将被拒绝   拒绝价值。

所以我很困惑为什么没有返回值。

1 个答案:

答案 0 :(得分:6)

$q.all accepts an array or an object,所以如果你把它改成它应该有效:

$q.all([$q.when(3), $q.when(5)]).then(function (values) {
    console.log(values);
});