Считается ли функция, содержащая ожидание, синхронной?

#javascript #asynchronous

#javascript #асинхронный

Вопрос:

Я читал об async / await в MDN, в частности, о недостатках его использования, как указывает ссылка.

Насколько я понимаю, любой метод, который реализует async/await , будет обрабатываться, по сути, как синхронный, тогда как вызывающий код будет продолжаться, обрабатывая этот метод как асинхронный. Является ли это справедливой оценкой? Кажется странным говорить, что myAsyncFunction это синхронно, но, возможно, это правильная терминология.

 async function myAsyncFunction(): Promise<void> {
    await client.someRequest();
    // code below will wait for the above to resolve
}

function callingCode(): void {
    myAsyncFunction();
    /// code below will happen asynchronously and not wait for above to resolve
}
  

Комментарии:

1. Она по-прежнему асинхронна. await просто приостанавливает функцию до разрешения ожидаемого значения. Функция должна быть асинхронной, чтобы это работало, поскольку, когда она приостанавливается, другой код может быть выполнен до разрешения ожидаемого значения. Итак, если вы вызываете asyncFn(); syncFn(); , то вторая функция определенно завершается и выдает значение раньше asyncFn , даже если она вызывается после нее.

2. Вы немного неправильно используете термины, но комментарии в вашем коде верны.