Zostałem poproszony o to w wywiadzie, ale przyniósł dobry przypadek użycia. Załóżmy, że masz kilka źródeł danych. Chcesz znaleźć pierwszy dostępny i przetworzyć go i zignorować resztę.Znajdź pierwsze dostępne źródło danych z jQuery Odroczone
Więc coś takiego:
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");});
ignorowanych, że ja naprawdę nie sądzę, kiedy akceptuje tablicę (może to robi). To oczywiście sprawi, że będzie czekać, aż wszystkie zostaną ukończone. Szukam kodu, który sprawi, że poczeka, aż jeden, którykolwiek z nich zostanie zrobiony, a potem nie martwi się o innych.
Zostałem poinformowany, że działa on tylko rekurencyjnie.
powinny one rozpocząć w tym samym czasie, albo drugi, gdy pierwszy nie powiodło? – Bergi
@Bergi Myślę, że albo zadziała, myślę, że obie są optymalne w różnych przypadkach użycia. – Parris
Tak, ale ich koncepcja jest zupełnie inna. Więc który z nich potrzebujesz? – Bergi