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

Ben*_*ler 5 javascript promise parse-platform

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

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
});
Run Code Online (Sandbox Code Playgroud)

......很甜蜜!

但是,你真的必须在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
});
Run Code Online (Sandbox Code Playgroud)

the*_*eye 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
});
Run Code Online (Sandbox Code Playgroud)

  • 显然,Parse JS SDK v1.7.x`Parse.Promise.when`将返回一个结果数组,如预期的那样,并记录在案.请看:https://github.com/ParsePlatform/Parse-SDK-JS/issues/158 (2认同)