JavaScript - хороший язык, который отлично работает с асинхронными обратными вызовами, тайм-аутами, интервалами и пользовательскими событиями, но не имеет проблем с параллелизмом.Это возможно, потому что JavaScript по сути однопоточный - данный фрагмент кода всегда выполняется атомарно и никогда не прерывается другим потоком, выполняющим JavaScript.
Ваша fetch()
функция всегда будет выполняться без какого-либо прерывания.Если он выполняется как часть обратного вызова AJAX и если ожидают несколько обратных вызовов AJAX, они будут поставлены в очередь.
Другой пример: если у вас есть обработчик события, назначенный элементу ввода, и вы запускаете событие несколько разобработчики событий не будут выполняться одновременно.Вместо этого они будут поставлены в очередь и выполнены последовательно.Это также относится к нескольким событиям, инициируемым setTimeout()
/ setInterval()
.
. В качестве примечания: это одна из причин, по которой node.js является настолько надежным: он используеттолько один поток и никогда не блокирует ввод / вывод, но вместо этого использует обратные вызовы, когда данные готовы / происходит событие.