Wpis z mikrobloga

Dlaczego w #javascript #jquery większość funkcji jest oparta na systemie zdarzeń, w sensie wykonujemy daną funkcję, i program leci dalej a ona wykonuje się w tle i po wykonaniu zwykle wywołuje funkcję podaną w argumencie. Nie mogło by być, ja wiem, normalnie, czyli by wszystkie wykonywały się po kolei, i każda kolejna czekała by na poprzednią?

pic related: http://gyazo.com/b390e01b66c310c632aa13b7789e7d24

#webdev #programowanie
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@skew: W JS wszystko jest wykonywane w jednym wątku (tak naprawdę to nie, ale to bardzo dobre przybliżenie JS w przeglądarce). Gdyby funkcja czekała, to przeglądarka nie mogłaby obsługiwać zdarzeń ani renderować.
  • Odpowiedz
@P0lip: Nope, na Javie, C++ i Pythonie.
@Ginden: @Daredzik: Często rzeczywiście jest to przydatne i fajne, ale już kilka razy miałem np. problemy z pętlą for, w niej funkcję aktualizującą jakieś dane, i po tej pętli chciałem tych danych użyć, a tu jebs okazuje się że jeszcze ich nie ma :D Musiałem to zrobić inaczej i zajęło to więcej :) Wolałbym wykonywać w tle rzeczy które
  • Odpowiedz
@skew Chyba, że tak. Do asynchroniczności pomocne są promises - poczytaj o tym, jeśli jeszcze tego nie zrobiłeś. Z reguły też jak dane pobierasz skądś przy pomocy xhrów to masz odpowiednie callbacki typu loadend etc.
  • Odpowiedz