я хотел бы использовать, когда() для управления отделкой многократного AJAX вызовов, такие как:
$.when(
$.ajax("test.aspx"),
$.ajax("test2.aspx"),
...
).then(...);
Наконец, я хотел бы использовать $ .when с результатами вызовов функций из переменного массива. Я не понимаю, как это сделать.
Как мы можем исправить следующую конструкцию? Проблема неверна, потому что мы передаем массив объектов Function, но не результат вызовов функций.
funcArray = [
function() { return $.ajax("test.aspx") },
function() { return $.ajax("test2.aspx") }
]
if(cond)
{
funcArray.push(function() { return $.ajax("test3.aspx") })
}
$.when.apply(null, funcArray).then(...); // how to correct here and probably somewhere else?
Ваши функции должны возвращать результат '$ .ajax()': 'функция() {вернуть $ .ajax (" test.aspx ")}' – ComFreek
@ComFreek Я полагаю, что это хорошая коррекция, но это не решение, не так ли? – sergzach
'$ .when' принимает обещания как свои аргументы, а не * функции, возвращающие обещания *. Сначала вам нужно вызвать все ваши функции, сохранить возвращенные обещания в массиве и передать * этот * массив в '$ .when' (используя' apply'). –