Используя jQuery .when, как передать переменное количество вызовов функций?

У меня есть переменное количество URL-адресов, которые я хочу сделать $.ajax(urlx), и я не вижу примеров того, как передать это $.when. Это не похоже на то, что .when принимает массив, просто список параметров.

Как я могу заставить это работать?

var picturesArray = [];
var urlCount = 2;
$.when(
  $.ajax(urls[0]),
  $.ajax(urls[1])
).done(function() {
  var cntx;
  for (cntx = 0; cntx < urlCount; cntx++) {
    picturesArray.push(arguments[cntx][0]);
  }
});

посмотрите, поможет ли это: stackoverflow.com/a/14352218/9386929

nircraft 07.05.2019 20:42

кто исчез предыдущий ответ и обсуждение этого ответа? Не знал, что может случиться в SO

Pete 08.05.2019 23:36

Я удалил свой собственный ответ, так как он не дает правильного решения.

nircraft 09.05.2019 15:15

Странно, я думал, что если у него есть комментарии, их нельзя будет удалить. Думаю, я был неправ.

Pete 10.05.2019 01:55
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
42
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я наконец-то заработал. Ответ таков, хотя и с некоторыми дополнительными подробностями.

var requests = [];
for (i = 0; i < urls.length; i++) {
  requests.push(
    $.ajax({
      urlIndex: i,
      url: urls[i],
      success: function(data, textStatus) {
        jsonResult[this.urlIndex] = {
          data: data,
          status: textStatus,
          error: "",
          viewed: false
        };
        console.info("success:" + new Date().getMilliseconds());
      },
      error: function(jqXHR, textStatus, errorThrown) {
        jsonResult[this.urlIndex] = {
          data: {},
          status: textStatus,
          error: errorThrown,
          viewed: false
        };
        console.info("error:" + new Date().getMilliseconds());
      }
    })
  );
}
$.when.apply(undefined, requests).then(
  function() {
    callback();
  },
  function() {
    callback();
  }
);

Другие вопросы по теме