Middle
Bestimmen Sie die Ausgabereihenfolge der Ziffern in der Konsole für das Beispiel mit Promise, bei dem reject aufgerufen wird und anschließend die Handler then, catch, finally angehängt werden.
sobes.tech KI
Antwort von AI
Если Promise сразу вызывается с reject, а затем навешиваются обработчики then, catch, finally, порядок вывода будет следующим:
const p = new Promise((resolve, reject) => {
reject('Ошибка');
});
p.then(() => console.log('then'))
.catch(() => console.log('catch'))
.finally(() => console.log('finally'));
В консоли выведется:
catch
finally
Объяснение:
- При вызове reject промис переходит в состояние rejected.
- then с первым аргументом для успешного результата пропускается.
- catch срабатывает и выводит 'catch'.
- finally срабатывает всегда, независимо от результата, и выводит 'finally'.
Обработчики then/catch/finally вызываются асинхронно после текущего стека, поэтому они сработают в порядке очереди микротасков.