Изучил работу движка V8 в контексте браузера и пришло непонимание.
Везде сказано, что в javascript есть асинхронность за счет таких вещей, как, например, Promise и setTimeout.
Асинхронность - принцип, по которому код выполняется таким образом, чтобы не приостанавливать поток выполнения последующего кода программы.
Коллбеки Promise записываются в очередь микрозадач, коллбеки setTimeout записываются в очередь макрозадач(задач).
Event loop работает так: 1 задача -> вся очередь микрозадач -> reflow/rerender -> 1 задача -> вся очередь микрозадач и так далее...
Вопрос: почему, учитывая тот факт, что пока не выполнится задача и последующая за ней очередь микрозадач, не начнется выполнение следующей задачи, везде утверждается, что в javascript есть асинхронность? Ведь "асинхронные" коллбеки не дают исполниться последующим задачам, т.к. Javascript однопоточный язык.
Или под асинхронностью в javascript подразумевается непрерывная работа интерпретатора javascript, который не блокируется и продолжает ставить в очередь задачи, а не непрерывное выполнение задач в стеке вызов?
Пробовал делать запрос к серверу с выполнением кода и записью в переменную, а затем вывести ее в консоль. В 99.99% случаев там прилетит undefined. С оговоркой если у тебя не пентиум 1 с 25мб озу
sim3x, я не знаю, какой у парня уровень английского. Русский, каким бы голос ни был ужасным, он, наверняка, поймет. А если захочет, то и сам оригинал нагуглит.