Чтобы передать массив значений в любую функцию , которая обычно ожидает их отдельных параметров, используйте Function.prototype.apply
, поэтому в этом случае вам понадобятся:
$.when.apply($, my_array).then( ___ );
См. http://jsfiddle.net/YNGcm/21/
В ES6 вы можете использовать оператор ...
spread :
$.when(...my_array).then( ___ );
В любом случае, поскольку маловероятно, что вы заранее узнаете, сколько формальных параметров потребует обработчик .then
, этот обработчик должен будет обработать массив arguments
, чтобы получить результат каждого обещания.
Результат из обещаний передается в качестве аргумента функции обратного вызова из .then()
, но вы его не используете. Попробуйте что-то вроде этого:
Promise.all(customs).then((results) => {
console.log('then', results);
// ...
});