Мне интересно, каковы условия, при которых node.js завершает цикл события. Как node.js выясняет, что дальнейшие события не будут инициированы? Напр. в случае http-клиента или приложения для чтения файлов.Когда завершается цикл событий node.js?
ответ
я рекомендовал бы вам посмотреть это большое видео Philip Roberts: What the heck is the event loop anyway? | JSConf EU 2014
Чтобы объяснить кратко, Javascript среда может сделать одну вещь в то время, таким образом, она называется «однопоточный». Тем не менее, у вас есть причина, по которой мы можем делать что-то одновременно, например, HTTP-запросы и т. Д., Потому что он вызывает видео как «браузерные API» для браузера, а для бэкэнд-среды, такой как Node.js, это API C++. Теперь любой из этих «внешних» вызовов API, таких как HTTP-клиент, переводится в очередь задач. Цикл событий имеет одну очень простую работу. Он всегда будет выполнять одно задание из очереди задач, учитывая, что основной столбец пустой и нажмите его в стек выполнения/выполнения. Таким образом, цикл событий прекращается, когда нет рабочих мест в очереди задач (внешние вызовы API)
Я рекомендую смотреть полное видео для лучшего понимания :)
Спасибо за видео! – vjain27
- 1. Цикл событий Node.js - nginx/apache
- 2. Node.js EventEmitter событий, не разделяя цикл событий
- 3. Node.js - цикл событий и ошибки внутреннего сервера
- 4. Длительный цикл событий Node.js разбивает весь код
- 5. В Node.js, setTimeout() блокирует цикл событий?
- 6. Как реализован цикл событий в node.js?
- 7. Node.js: блокирует ли JSON.parse цикл событий?
- 8. Возможно ли переупорядочить цикл событий node.js?
- 9. Что такое среднее по циклу событий в node.js? javascript цикл событий или цикл событий libuv?
- 10. Базовый цикл завершается неожиданно
- 11. Почему цикл For не завершается?
- 12. Возврата когда .each завершается
- 13. node.js Диагностика цикла событий
- 14. Когда слушатели событий подключаются в Node.js?
- 15. Почему цикл `while` завершается бесконечно?
- 16. Не асинхронная функция и Node.js цикл событий, как это работает?
- 17. Почему мой цикл for завершается, когда я вызываю свой класс?
- 18. Пока цикл не завершается, когда условие выполнено (C++)
- 19. Булево сравнение ints, когда RHS == Integer.MAX_VALUE, почему этот цикл завершается?
- 20. Потенциально запирая цикл событий в Node.js через EventEmitter
- 21. Является ли цикл событий node.js похожим на вызов ajax?
- 22. Запрос статических файлов в node.js и цикл событий
- 23. Почему цикл while блокирует цикл событий узла?
- 24. Java-процесс уведомляет цикл событий узла
- 25. Что делает цикл событий открытым при прослушивании событий ввода-вывода?
- 26. Угловая - предотвращает цикл событий?
- 27. Бесконечный цикл событий
- 28. setInterval и цикл событий
- 29. Node.js порядок обработки событий
- 30. Как понять петли событий Node.js
путем подсчета. Асинхронные задачи должны регистрироваться в цикле событий, и их также можно отменить. Для примера см. Методы '' unref' и 'ref' таймеров] (http://nodejs.org/api/timers.html#timers_unref). – Bergi
Я бы порекомендовал вам посмотреть это замечательное видео [Philip Roberts: Какая черта цикла событий в любом случае? | JSConf EU 2014] (https://www.youtube.com/watch?v=8aGhZQkoFbQ) – AhmadAssaf
@Bergi я даже не закончил редактирование своего ответа, и я обнаружил, что он уже преобразован в комментарий. Чтобы кратко объяснить, время выполнения Javascript может делать одно за раз, поэтому оно называется «однопоточным». Однако у вас есть причина, по которой мы можем делать что-то одновременно, например, HTTP-запросы из-за «API-интерфейсов браузера» или C++ API. Теперь любой из этих API помещается в очередь задач. Цикл событий имеет одну очень простую работу. Он всегда будет выполнять одно задание из очереди задач, учитывая, что основной столбец пустой и нажмите его в стек выполнения/выполнения. – AhmadAssaf