JavaScript Promise.then() — обробка результату обіцянки


Метод then() (у перекладі — тоді) виконує функцію, коли обіцянка виконалась, і передає їй результат.

автор: NagarD

Загальний опис

Найважливіше про then() — він повертає нову обіцянку. Саме тому виклики шикуються в ланцюжок: те, що повернув один обробник, приходить у наступний.

Якщо обробник повертає звичайне значення — воно й прилетить далі. Якщо повертає обіцянку — ланцюжок дочекається її й передасть уже розгорнутий результат. Це те, що рятує від вкладених then усередині then.

Другий аргумент then() ловить помилку, але так майже не пишуть: catch() у кінці ланцюжка читабельніший і ловить помилки з усіх ланок, а не лише з попередньої.

автор: NagarD

Нотатка

Обробник виконується асинхронно — навіть якщо обіцянка вже виконана. Код після .then() відпрацює раніше за код усередині нього.

автор: NagarD

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
then 32+ 29+ 8+ 19+ 12+ -
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
then 32+ yes yes 8+

Приклади

+ запропонувати свій приклад у пісочниці

Ланцюжок: повернув обіцянку — наступний обробник чекає на неї.

fetch('/api/user')
    .then(response => response.json())  // повернули обіцянку — чекаємо
    .then(user => user.name.toUpperCase()) // повернули значення — летить далі
    .then(name => console.log(name))
    .catch(error => console.error(error));

// then асинхронний навіть на готовій обіцянці
Promise.resolve(1).then(() => console.log('другий'));
console.log('перший');
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід