Какие знаешь методы Promise

Ответ

Promise предоставляет несколько методов для работы с асинхронными операциями:

  1. then() – обрабатывает успешное выполнение Promise.
    promise.then((result) => console.log(result));
  1. catch() – обрабатывает ошибки.
    promise.catch((error) => console.error(error));
  1. finally() – выполняется в любом случае (успех/ошибка).
    promise.finally(() => console.log('Завершено'));
  1. Promise.all() – ожидает выполнение всех Promise.
    Promise.all([promise1, promise2]).then((results) => ...);
  1. Promise.race() – возвращает первый завершенный Promise.
    Promise.race([promise1, promise2]).then((result) => ...);
  1. Promise.allSettled() – ждет завершения всех, независимо от результата.
    Promise.allSettled([promise1, promise2]).then((results) => ...);
  1. Promise.any() – возвращает первый успешный Promise.
    Promise.any([promise1, promise2]).then((result) => ...);
  1. Promise.resolve() / Promise.reject() – создают resolved/rejected Promise.
    Promise.resolve('Успех');
    Promise.reject('Ошибка');

Ответ 18+ 🔞

Давай разберём эту штуку, которая называется Promise. Ну, обещание, блядь. Как будто в детстве: "Обещаю, мам, больше не буду!" — а потом всё равно хуяришь по мячу в окно. Так вот, эти промисы — они чуть надёжнее, но тоже могут наебнуться.

Смотри, у него есть методы — как кнопки на пульте, только для асинхронщины.

  1. then() — это когда всё заебись, промис выполнился. Ты ему говоришь: "Ну, чувак, если всё ок, сделай вот это".

    promise.then((result) => console.log(result));

    Типа, "получил результат — выведи его, не будь мудаком".

  2. catch() — а это когда всё пошло по пизде. Ошибка, сбой, сервер сгорел. Тут ты ловишь эту хуйню.

    promise.catch((error) => console.error(error));

    "Э, бошка думай! Поймай ошибку и покажи, что за херня случилась, а не молчи как Герасим!"

  3. finally() — этот выполнится вообще всегда. Успех, не успех — похуй. Как "я всегда тебя буду любить" — ну, в идеальном мире.

    promise.finally(() => console.log('Завершено'));

    "Чистку за собой сделал в любом случае, сволочь!"

  4. Promise.all() — это когда у тебя куча промисов, и ты ждёшь, пока ВСЕ, блядь, выполнятся. Как собрать всех друзей в кино — один всегда опаздывает, сука.

    Promise.all([promise1, promise2]).then((results) => ...);

    Ждёшь всех, и только потом идёшь дальше. Один сломался — всё, пиздец всей операции.

  5. Promise.race() — гонка, ёпта! Кто первый прибежал — того и тапки. Остальных в помойку.

    Promise.race([promise1, promise2]).then((result) => ...);

    Первый, кто ответил (успех или ошибка) — забирает победу. Остальные уже никому не нужны, бедолаги.

  6. Promise.allSettled() — а этот — терпеливый, как святой. Ждёт, пока все хоть как-то закончат. Упал, выполнился — всё равно.

    Promise.allSettled([promise1, promise2]).then((results) => ...);

    "Мне, сука, важен результат каждого! Рассказывай, как было, даже если обосрался!"

  7. Promise.any() — ждёт первого, кто не обосрётся. Первого успешного. Все остальные могут хоть в астрал улететь — ему похуй.

    Promise.any([promise1, promise2]).then((result) => ...);

    "Ну-ка, кто у меня тут молодец? Кто справился? А остальные — пидарасы шерстяные, идите лесом".

  8. Promise.resolve() / Promise.reject() — это как читерство. Сразу создаёшь промис, который уже или "ок" или "всё пропало".

    Promise.resolve('Успех'); // Всё сразу хорошо, ебать!
    Promise.reject('Ошибка'); // Всё сразу плохо, пиздец.

    Для тестов или когда надо быстро сварганить ответ. Хуй в пальто, а не промис.

Вот и вся магия, ёпта. Главное — не запутаться, а то будет как в том анекдоте: "обещал, но не выполнил". Только здесь ошибка в консоль вылезет, а не мамка ремнём нагнётся.