【问题标题】:Javascript: Is there a way to specify infinite input parameters for Parse.Promise.when?Javascript:有没有办法为 Parse.Promise.when 指定无限输入参数?
【发布时间】:2015-02-15 18:12:00
【问题描述】:

查看 Parse.Promise.when (https://www.parse.com/docs/js/symbols/Parse.Promise.html#.when) 的文档,目前有两种指定方式。第一个是“when”的逗号分隔输入参数,然后是“then”函数的逗号分隔输入

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

第二个是“when”的数组输入,后跟“then”中函数的逗号分隔输入。

  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”中的函数,是否有一种简单的方法可以指定无限量的输入,而无需实际输入无限量的输入?换句话说,有没有办法以简单的方式重现这个?

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
        .
        .
        .
        .
        .
        ∞
      }); 

我尝试使用“arguments”变量,但在这种情况下它不起作用。看来我得把参数r1,r2,r3...∞一个一个地放进去。有谁知道解决这个问题的方法?请帮忙

【问题讨论】:

  • 您能告诉我们您尝试使用arguments 变量的代码吗?我很确定这应该有效。

标签: javascript parse-platform promise .when


【解决方案1】:

没有,但会有的。

ECMAScript 6 功能 rest parameters 允许您这样做:

Parse.Promise.when(promises).then(function(r1, r2, r3, ....rest) {
     console.log(r1); // prints 1
     console.log(rest); // an array with the rest of the parameters.
});

在 EcmaScript 5 中你需要使用arguments:

Parse.Promise.when(promises).then(function() {
     console.log(arguments[0]); // prints 1
     // prints 2 in the first iteration all the way to the last one
     for(var i = 1; i < arguments.length; i++){
         console.log(arguments[i]); 
     });
});

【讨论】:

  • 谢谢!我的错误是在匿名函数中为参数插入“参数”。谢谢!
  • @user3145336 很高兴能帮助您解决问题。公平地说,arguments 在 JS 中确实有问题。
猜你喜欢
  • 1970-01-01
  • 2021-12-27
  • 1970-01-01
  • 2020-11-24
  • 1970-01-01
  • 2013-06-06
  • 1970-01-01
  • 2018-08-26
  • 1970-01-01
相关资源
最近更新 更多