Групповой deferred

jQuery.when()

На основе нескольких заданных объектов (обычно deferred), функция $.when() создает новый deferred-объект, следящий за состоянием всех заданных. Стоит уточнить, что $.when() возвращает promise-версию (заместителя) deferred-объекта.

jQuery.when(obj1,obj2,..):deferred1.5

obj's — объекты (обычно deferred).

Задав в $.when() несколько deferred-объектов, вы получите новый объект этого типа. Он примет состояние выполнено, когда (и если) его примут все заданные в $.when() объекты. Если один из них перейдет в состояние ошибки выполнения, то созданный deferred примет это состояние вслед за ним.

// воспользуемся when(), чтобы получить объект следящий за выполнением
// двух ajax запросов
var newDef = $.when($.get("test1.php"), $.get("test2.php"));
 
// установим обработчики выполнения newDef
newDef.done(function(){
  alert("Успешно выполнены 2 ajax-запроса");
}).fail(function(){
  alert("При выполнении одного из ajax-запросов произошла ошибка");
});

Если передать в $.when() только один deferred-объект, то он просто возвратит его promise-версию. Помимо deferred-объектов в $.when() можно указывать любые другие javascript-объекты. Jquery всегда будет определять их состояние как успешно выполненное. Таким образом, $.when({fld:""}) вернет уже выполненный deferred-объект.

Ссылки

Поисковые ключи:
  • when()

От автора jquery.page2page.ru

 
Мини-игра про поход за продуктами во время карантина.

за Comic Sans извЕняем