$ q.all([somevar]),然后(函数(数据)){}; ,如果somevar未定义'什么时候会解决?

时间:2015-08-18 13:02:59

标签: javascript angularjs angularjs-directive

$q.all([promise]).then(function(data)){
 console.log('resolved');
}; 

假设承诺未定义'什么时候会解决? 甚至承诺是空的或未定义的,它正在得到解决,所以对$ q行为感到困惑。请你澄清一下。

1 个答案:

答案 0 :(得分:1)

$q.all即使没有记录,也可以采用普通值,而不仅仅是承诺 - 它会自动转换它们。所以你的代码相当于

$q.all([$q.when(promise)]).then(function(data)) {
  console.log('resolved');
};

如果promisenull,您将获得使用null解决的承诺,这就是为什么您最终会在[null]中看到data {1}}。