all-threads-bot

Frontender`s Spectre

JavaScript | Практика #158 | Асинхронность | ★★★★☆

22 марта 2023 г., 10:51

<p><b>Ответ: <code>first, third, second</code></b></p> <p>В функции <code>bar()</code> используется ключевое слово <code>await</code> перед вызовом асинхронной функции <code>foo()</code>, которая содержит функцию <code>console.log('first')</code>. Когда <code>bar()</code> вызывается, выполнение функции <code>foo()</code> приостанавливается, пока не завершится вызов <code>console.log('first')</code>. Затем функция <code>console.log('second')</code> вызывается после того, как <code>foo()</code> завершится. После вызова <code>bar()</code>, функция <code>console.log('third')</code> вызывается сразу же, не ожидая завершения <code>bar()</code> или <code>foo()</code>. Поэтому, результат выполнения будет "first, third, second".</p>

<p><b>Ответ: <code>first, third, second</code></b></p> <p>В функции <code>bar()</code> используется ключевое слово <code>await</code> перед вызовом асинхронной функции <code>foo()</code>, которая содержит функцию <code>console.log('first')</code>. Когда <code>bar()</code> вызывается, выполнение функции <code>foo()</code> приостанавливается, пока не завершится вызов <code>console.log('first')</code>. Затем функция <code>console.log('second')</code> вызывается после того, как <code>foo()</code> завершится. После вызова <code>bar()</code>, функция <code>console.log('third')</code> вызывается сразу же, не ожидая завершения <code>bar()</code> или <code>foo()</code>. Поэтому, результат выполнения будет "first, third, second".</p>
Ниже представлено пояснение.

Ответ: first, third, second

В функции bar() используется ключевое слово await перед вызовом асинхронной функции foo(), которая содержит функцию console.log('first'). Когда bar() вызывается, выполнение функции foo() приостанавливается, пока не завершится вызов console.log('first'). Затем функция console.log('second') вызывается после того, как foo() завершится. После вызова bar(), функция console.log('third') вызывается сразу же, не ожидая завершения bar() или foo(). Поэтому, результат выполнения будет "first, third, second".