Что будет выведено в результате выполнения следующего кода?
new Promise((resolve, reject) => {
reject(‘a’)
console.log(‘b’)
resolve(‘c’)
}).then(() => {
console.log(‘d’)
}).catch((e) => {
console.log(e)
})
b
a
Давайте разберем его по шагам:
1. Создается новый Promise с функцией-исполнителем, которая принимает два аргумента: `resolve` и `reject`.
2. Внутри функции-исполнителя вызывается функция `reject('a')`, передавая ей аргументом строку `'a'`.
3. Затем, на следующей строке, вызывается функция `console.log('b')`, которая выводит строку `'b'`.
4. После этого, вызывается функция `resolve('c')`, передавая ей аргументом строку `'c'`. Однако, так как предыдущая функция `reject` уже была вызвана, то эта функция не будет иметь никакого эффекта, потому что Promise уже находится в состоянии "отклонено".
5. Далее, вызывается метод `then` на объекте Promise, который принимает одну функцию-обработчик. Эта функция-обработчик не будет вызвана, так как Promise был отклонен, а не выполнен.
6. Вместо этого, выполнится метод `catch` на объекте Promise, который принимает функцию-обработчик с одним аргументом `e`. Функция-обработчик выводит значение аргумента `e`, в данном случае строку `'a'`, с помощью функции `console.log`.
7. Таким образом, на консоль будет выведено `'b'` и `'a'`, в указанном порядке.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет