Какой смысл асинхронности, поскольку JS однопоточный? - PullRequest
0 голосов
/ 17 июня 2019

Я не понимаю, в чем преимущество асинхронного кода, потому что JS является однопоточным, поэтому он не может выполнять несколько функций одновременно (некоторые графики показывают, что время выполнения "стек", но как это возможно?)

1 Ответ

0 голосов
/ 17 июня 2019

Причина, по которой он однопоточный, заключается именно в том, почему ему нужно использовать асинхронный код.Есть определенные вещи, которые можно выполнить «в фоновом режиме»;например, делая сетевой запрос через XMLHttpRequest, фактический запрос будет обрабатываться механизмом в фоновом режиме, а не обрабатывать один поток Javascript.Код, ожидающий завершения запроса, не нуждается в блокировке потока, он может уступать другим функциям и вызываться асинхронно после получения ответа.

Нет способа написать "фоновые »вещи в чистом Javascript;создание фактического сетевого запроса слишком низкоуровнево для обработки Javascript, фактическая реализация находится где-то в C, или что бы двигатель не использовал.Есть только несколько таких вещей, которые «работают в фоновом режиме», например setTimeout, setInterval и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...