![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 1.02.2014 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie
Piszę fragment kodu odpowiedzialny za poruszanie czterema obrazkami. Sprawa dokładnie wygląda tak: obrazek się pojawia, dzięki animate przesuwa na koniec jednego diva, zanika, pojawia w kolejnym, przesuwa na jego koniec, zanika ponownie, pojawia się w ostatnim div, gdzie przesuwa się na jego koniec i tam zostaje. A potem kolejny, kolejny i kolejny. Nie jest to trudny kod, ale aby wszytko działało w odpowiedniej kolejności używam callbacków. Przy jednym obrazku to nie problem, ale przy czterech ten kod zaczyna robić się zawiły, a to nie jest prawidłowe. Zastanawiam się więc jak w jQuery zachowując kolejność wykonywanego kodu uniknąć dużej ilości callbacków? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Nie jest to problem samego jquery, tylko tego w jaki sposób działa javascript ogólnie. A działa asynchronicznie i ty chcesz żeby działał asynchronicznie, żeby jedna akcja drugiej nie blokowała. Dlatego też zostały wprowadzone obietnice (promise) oraz od całkiem niedawna generatory i ich async/await odpowiedniki. Dzięki czemu możesz tworzyć kod który wygląda jak synchroniczny, a jest asynchroniczny. Od jakiegoś czasu używam takiego podejścia (raczej głównie po stronie backendu) i jest to ogromny krok do przodu i już nigdy nie chcę używać callback'ów czy then'ów.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 03:50 |