jquery deferred превратить неудачу в успех

Таким образом, при использовании jQuery deferreds и $., Когда загружает множество объектов параллельно.

$.when(
  a.ajax(), b.ajax(), c.ajax()
).then(
  //do something when all are complete
  complete();
);

Теперь, b.ajax () иногда дает сбой, но мне все равно. Я просто хочу дождаться завершения всех вызовов, прежде чем вызывать complete ().

К сожалению, как только b выходит из строя, when () отклоняет и никогда не запускает then () обратный вызов. Это AFAIK ожидаемое поведение для $. When () , однако в данном случае меня устраивает do.

Мне действительно нужен способ сказать:

$.when(
  a.ajax(), b.ajax().fail(return success), c.ajax()
).then(...)

Или, возможно, есть другой способ использовать when () , или более подходящая конструкция?

7
задан alain.janinm 29 April 2012 в 21:03
поделиться