Одна вещь, которую я не могу найти нигде в документации или связанных ресурсах, это что такое процедура в отношении вызывающей функции и цикла обработки событий, когда JS достигает ключевого слова await
.
Вот что такое состояние specs :
Выражение await заставляет выполнение асинхронной функции приостанавливаться до разрешения Promise, которое выполняется или отклоняется, и довозобновить выполнение асинхронной функции после выполнения.При возобновлении значение выражения await равно значению выполненного Обещания.
Это все имеет смысл, но что на самом деле означает пауза?Возвращается ли функция немедленно вызывающей стороне, а затем, когда ожидаемое обещание разрешается, оно и остальная часть асинхронного метода добавляются в очередь для выполнения микрозадач?Я знаю, что async/await
является синтаксическим сахаром для API Promise, поэтому я предполагаю, что это именно то, что происходит, но я хочу убедиться, что я действительно понимаю «магию», которая происходит, когда достигается await
,
Из того, что я прочитал, похоже, что это сделано в C #, но я не совсем уверен, как это переводится в JS.