Выполняют ли операции async с обратными вызовами размер стека? У меня недостаточно знаний переводчиков javascript или правильных инструментов, чтобы понять это. Мой инструмент goto - это консоль firebug, и это показывает, что размер стека не увеличивается, но я могу смотреть на него неправильно. Так кто-нибудь знает?Размер стека и обратные вызовы в javascript
ответ
Асинхронный обратный вызов, как и обратный вызов события, запускается один за другим через цикл событий. Он не вызывается из одного стека вызовов функции, которая помещает его в цикл событий, поскольку каждая функция цикла завершается до того, как будет вызвана следующая. Нет, они не увеличивают размер стека.
Я считаю, что все javascript-двигатели в современных браузерах однопоточные, что означает, что обратный вызов не может произойти до тех пор, пока не закончится текущий путь выполнения. Это будет означать, что стек полностью размотан, и обратный вызов будет происходить (по существу) с новым стеком.
Размер стека будет увеличиваться только при вызове функции или объявлении локальной переменной. Когда вы покинете область действия, вызвавшую увеличение, стек снова уменьшится.
Если вас больше интересует использование общей памяти, то это немного сложнее.
Обратные вызовы будут занимать немного памяти до тех пор, пока они не будут выполнены, но механизм javascript должен очистить после себя после завершения обратного вызова. Если вы поместите новые данные в кучу (например, через глобальные переменные), то эта память не будет освобождена, поскольку она будет по-прежнему использоваться после обратного вызова.
- 1. Javascript и обратные вызовы
- 2. Обратные вызовы браузера и безумство стека Android
- 3. Обратные вызовы в JavaScript
- 4. Обратные вызовы и события JavaScript
- 5. Javascript условные обратные вызовы
- 6. Асинхронные обратные вызовы Javascript
- 7. Видящие обратные вызовы javascript
- 8. JavaScript module.exports обратные вызовы
- 9. Обратные вызовы Javascript в объекте
- 10. Асинхронные обратные вызовы в JavaScript
- 11. Обратные вызовы в JQuery/JavaScript
- 12. Очистители обратные вызовы в JavaScript
- 13. http.jsonp и обратные вызовы в javascript
- 14. Обратные обратные вызовы
- 15. Javascript обещает - множественные обратные обратные вызовы
- 16. Обратные вызовы и это
- 17. Как синхронизировать обратные вызовы JavaScript?
- 18. Почему обратные вызовы javascript асинхронны?
- 19. Обратные обратные вызовы
- 20. Понимание Javascript асинхронных блоков и обратные вызовы
- 21. node.js/javascript - вложенные обратные вызовы
- 22. PHP-сессии и обратные вызовы Javascript
- 23. Обратные обратные вызовы
- 24. JavaScript обратные вызовы и API геолокации
- 25. Javascript порядок выполнения и обратные вызовы
- 26. Закрытие и обратные вызовы
- 27. Прототипы и обратные вызовы
- 28. LookUps и обратные вызовы
- 29. $ .when и обратные вызовы
- 30. Делегаты и обратные вызовы