w javascript, mam dwa asychronous wnioski dla danych:Gwarantowanie asynchroniczne żądania oddzwonienia kolejność JavaScript
$.getJSON('http://foo.com', fooQuery, fooSuccess(data));
$.getJSON('http://bar.com', barQuery, barSuccess(data));
i dwa wywołania zwrotne do przetwarzania odebranych danych:
fooSuccess(data) { // Stuff }
barSuccess(data) { // More Stuff }
Jak mogę zapewnić barSuccess jest wykonywane tylko po zakończeniu fooSuccess?
Uwagi:
- chcę zachować żądania danych, ponieważ są one: asynchroniczny i bez blokowania (od odpowiedzi serwera może chwilę potrwać).
- Ale chcę wywołań zwrotnych, które przetwarzają dane do wykonania sekwencyjnie. Oznacza to, że nie chcę wykonywać barSuccess, dopóki nie zakończy się fooSuccess.
Dziękuję bardzo za mądrość i pomoc!
Chcesz [obietnica jQuery/obiekt odroczony] (http://api.jquery.com/category/deferred-object/). –
@JaredFarrish sprawiają, że jest to odpowiedź! – Colleen
O tak, jest też nowsza ['jQuery.Callbacks()'] (http://api.jquery.com/category/callbacks-object/). –