chcę stać w kolejce wiele żądań asynchronicznych ajax pomocą odroczony wdrożenia/obietnica jQuery:poczekać na zakończenie po wielokrotnych obietnic równolegle z wykorzystaniem jQuery
function doSomething() {
console.log('doSomething')};
function makeMultiAjaxRequests1() {
console.log('makeMultiAjaxRequests1')};
function makeMultiAjaxRequests2() {
console.log('makeMultiAjaxRequests2')};
var step1 = function() {
var promise = new $.Deferred().promise();
makeMultiAjaxRequests1();
return promise; }
var step2 = function() {
var promise = new $.Deferred().promise();
makeMultiAjaxRequests2();
return promise; }
step1()
.then(step2())
.done(doSomething());
$.when(step1(),
step2())
.done(function() {
doSomething();
});
Oto fiddle link. Moje pytanie brzmi:
W schemacie, w którym krok 1 i krok 2 są wykonywane równolegle, kod nie osiąga ostatniej funkcji obsługi. Czemu?
Gdzie są rzeczywiście rozwiązywania obietnicę? Jeśli nie wyzwolisz procedury obsługi, wywołanie zwrotne nie zostanie wywołane ... – Bergi
Odroczone wartości w "krokach 1()" i "krokach 2()" nigdy nie zostaną rozwiązane. –
To prawda, ale co jest w poprzednim przykładzie sekwencyjnym? Obietnica nie została rozwiązana, a kod nadal się kończy. – crishushu