#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. Вы немного неправильно используете термины, но комментарии в вашем коде верны.