Мне нужно понять эти понятия более четко, так как я не уверен в них. Javascript пока что однопоточный, так хорошо.
Насколько я понимаю, setTimeout просто задерживает выполнение кода из основного потока, но обратный вызов все равно выполняется в основной поток, когда стек вызовов пуст. Это правильно? То же самое будет верно для Обещаний и Обработчиков событий.
setTimeout(() => {
console.log('this line of code is executed on the main thread');
}, 5000);
Для асинхронных запросов, использующих XMLHttpRequest , фактический запрос отправляется в отдельный API, реализованный браузером, который запускает его в отдельном потоке, поэтому он действительно асинхронный. Это правильно?
WebWorkers будет другим API, реализованным браузером, который также запускает код из данного сценария в фоновом потоке. Это правильно?
Буду очень признателен за ответ на этот вопрос!