problemy z synchronizacją z odroczonym jquery
To pytanie jest starannie destylowaną wersjąnie asynchroniczna funkcja wykonywana jako jQuery Deferred.
Mamy 2 jsfiddles:
http://jsfiddle.net/XSDVX/1/ - tutaj zdarzenie progress nie jest uruchamiane pomimo wywołania funkcji notify ().
http://jsfiddle.net/UXSbw/1/ - tutaj zdarzenie postępu jest uruchamiane zgodnie z oczekiwaniami.
Jedyną różnicą jest jedna linia kodu:
setTimeout(dfd.resolve,1);
przeciw
dfd.resolve();
Pytania to:
W jaki sposób .then przechwytywanie .notify, które jest wywoływane zanim to wywołanie zwrotne powróci, gdy opóźnimy rozstrzygnięcie? Pomyśl o tym. .ten pobiera obiekt odroczony, który został zwrócony z jego pierwszego parametru i tworzy z niego nowy obiekt odroczony, wiążąc się z wykonanym postępem i zdarzeniami niepowodzenia. Jeśli powiadomienie zostało wywołane przed zwróceniem odroczonego, jak to się dzieje, że przechwytuje go nawet z setTimeout? (Dziękihttps://stackoverflow.com/users/400654/kevin-b za to pytanie)
Czy mogę się pozbyćsetTimeout()
i nadal masz wywołanie zwrotne postępu?