Найти первый доступный источник данных с помощью jQuery Deferred

Так что меня спросили об этом на собеседовании, но это послужило хорошим примером использования. Предположим, что у вас есть куча источников данных. Вы хотите найти первый доступный, обработать его и игнорировать остальные.

Так что-то вроде:

var datasources = new Array("somedatabase1/pizza","somedatabase2/beer","somedatabase3/llama");
var dfds = new Array();
$.each(datasources,function(source){
    dfds.push($.getJSON(source));
});

$.when(dfds).done(function(){alert("they are all done");});

Проигнорируйте, что я действительно не думаю, когда принимает массив (возможно, это делает). Это конечно заставило бы это ждать, пока они все не будут закончены. Я ищу некоторый код, который заставил бы его ждать, пока один, любой из них не будет сделан, и затем не беспокоиться о других.

Мне сообщили, что это будет работать только рекурсивно.

Ответы на вопрос(2)

Ваш ответ на вопрос