JavaScript: есть ли способ указать бесконечные входные параметры для Parse.Promise.when?

Глядя на документацию для Parse.Promise.when ( https://www.parse.com/docs/js/symbols/Parse.Promise.html), в настоящее время есть два способа указать это. Первый - с разделенными запятыми входными параметрами для "когда", а затем с разделенными запятыми входами для функции в "тогда"

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

а второй - с массивом ввода для "когда", за которым следуют разделенные запятыми входы для функции в "тогда".

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

Мой вопрос: для функции внутри "тогда" существует ли простой способ указать бесконечное количество входов без необходимости вводить бесконечное количество входов? Другими словами, есть ли способ воспроизвести это простым способом?

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...∞. Кто-нибудь знает способ обойти это? Пожалуйста помоги

1 ответ

Решение

Нет, но будет.

ECMAScript 6 имеет параметры отдыха, которые позволяют вам сделать это:

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]); 
     });
});
Другие вопросы по тегам