all-threads-bot

Frontender`s Spectre

JavaScript | Практика #167 | Промисы | ★★★☆☆

4 апреля 2023 г., 13:35

<p><strong>Ответ: <code>"fourth", "first", "third", "second"</code></strong></p> <p>При выполнении кода сначала выполняется синхронный код и строка <code>console.log('fourth');</code> выводится в консоль, затем начинает выполняться код внутри асинхронной функции <code>setTimeout</code> и выводится строка "<code>first</code>", выполняется метод <code>resolve</code> с аргументом "<code>second</code>", и после этого выводится строка "<code>third</code>".</p> <p>Метод then у промиса выполняется после того, как промис переходит в состояние <code>fulfilled</code> (вызова метода <code>resolve</code>), поэтому строка "<code>second</code>" выводится после "<code>third</code>".</p>

<p><strong>Ответ: <code>"fourth", "first", "third", "second"</code></strong></p> <p>При выполнении кода сначала выполняется синхронный код и строка <code>console.log('fourth');</code> выводится в консоль, затем начинает выполняться код внутри асинхронной функции <code>setTimeout</code> и выводится строка "<code>first</code>", выполняется метод <code>resolve</code> с аргументом "<code>second</code>", и после этого выводится строка "<code>third</code>".</p> <p>Метод then у промиса выполняется после того, как промис переходит в состояние <code>fulfilled</code> (вызова метода <code>resolve</code>), поэтому строка "<code>second</code>" выводится после "<code>third</code>".</p>
Ниже представлено пояснение.

Ответ: "fourth", "first", "third", "second"

При выполнении кода сначала выполняется синхронный код и строка console.log('fourth'); выводится в консоль, затем начинает выполняться код внутри асинхронной функции setTimeout и выводится строка "first", выполняется метод resolve с аргументом "second", и после этого выводится строка "third".

Метод then у промиса выполняется после того, как промис переходит в состояние fulfilled (вызова метода resolve), поэтому строка "second" выводится после "third".