Показать сообщение отдельно
  #4 (permalink)  
Старый 10.01.2014, 18:07
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от cyber Посмотреть сообщение
Если к примеру запрос к базе данных идет, то запрос будет асинхроным и callback выполниться когда прийдет ответ из базы, а если к примеру использовать callback в forEach то эта операция будет синхронной.
Ты написал глупости Всё зависит от интерфейса АПИ, тот же пресловутый forEach легко делается асинхронным с помощью дробления через setImmediate или nextTick (смотри либу async).

В случае асинхронного callback он выполнится не сразу как придёт, а сразу как до него дойдёт очередь после того, как он пришёл, т.е. если залочить поток бесконечным циклом, то callback никогда не всплывёт.

В общем нужно помнить, что пока JS что-то делает (бегает по циклам, складывает числа), то все уже пришедшие callback-и будут томится в темнице стека-событий ожидая освобождения потока.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 10.01.2014 в 18:12.
Ответить с цитированием