Parse:Promise.When有许多承诺吗?

时间:2014-07-21 16:53:34

标签: javascript parse-platform promise

解析文档(https://www.parse.com/docs/js/symbols/Parse.Promise.html#.when)解释了当使用Parse.Promise.when时,指定一个承诺数组是犹太的:

var p1 = Parse.Promise.as(1);
var p2 = Parse.Promise.as(2);
var p3 = Parse.Promise.as(3);

var promises = [p1, p2, p3];
Parse.Promise.when(promises).then(function(r1, r2, r3) {
  console.log(r1);  // prints 1
  console.log(r2);  // prints 2
  console.log(r3);  // prints 3
});

......这很甜蜜!

但是,你真的必须列出then()函数中的每一个promise响应吗?如果你有一系列未知大小的承诺,而且不是很干,那就不太可行了!

我可以这样做吗?

Parse.Promise.when(promises).then(function(responses) {
  console.log(responses[0]);  // prints 1
  console.log(responses[1]);  // prints 2
  console.log(responses[2]);  // prints 3
});

1 个答案:

答案 0 :(得分:14)

您可以使用JavaScript的内置特殊变量arguments,就像这样

Parse.Promise.when(promises).then(function() {
  console.log(arguments[0]);  // prints 1
  console.log(arguments[1]);  // prints 2
  console.log(arguments[2]);  // prints 3
});