Ответ
Promise предоставляет несколько методов для работы с асинхронными операциями:
then()– обрабатывает успешное выполнение Promise.
promise.then((result) => console.log(result));
catch()– обрабатывает ошибки.
promise.catch((error) => console.error(error));
finally()– выполняется в любом случае (успех/ошибка).
promise.finally(() => console.log('Завершено'));
Promise.all()– ожидает выполнение всех Promise.
Promise.all([promise1, promise2]).then((results) => ...);
Promise.race()– возвращает первый завершенный Promise.
Promise.race([promise1, promise2]).then((result) => ...);
Promise.allSettled()– ждет завершения всех, независимо от результата.
Promise.allSettled([promise1, promise2]).then((results) => ...);
Promise.any()– возвращает первый успешный Promise.
Promise.any([promise1, promise2]).then((result) => ...);
Promise.resolve()/Promise.reject()– создают resolved/rejected Promise.
Promise.resolve('Успех');
Promise.reject('Ошибка'); Ответ 18+ 🔞
Давай разберём эту штуку, которая называется Promise. Ну, обещание, блядь. Как будто в детстве: "Обещаю, мам, больше не буду!" — а потом всё равно хуяришь по мячу в окно. Так вот, эти промисы — они чуть надёжнее, но тоже могут наебнуться.
Смотри, у него есть методы — как кнопки на пульте, только для асинхронщины.
-
then()— это когда всё заебись, промис выполнился. Ты ему говоришь: "Ну, чувак, если всё ок, сделай вот это".promise.then((result) => console.log(result));Типа, "получил результат — выведи его, не будь мудаком".
-
catch()— а это когда всё пошло по пизде. Ошибка, сбой, сервер сгорел. Тут ты ловишь эту хуйню.promise.catch((error) => console.error(error));"Э, бошка думай! Поймай ошибку и покажи, что за херня случилась, а не молчи как Герасим!"
-
finally()— этот выполнится вообще всегда. Успех, не успех — похуй. Как "я всегда тебя буду любить" — ну, в идеальном мире.promise.finally(() => console.log('Завершено'));"Чистку за собой сделал в любом случае, сволочь!"
-
Promise.all()— это когда у тебя куча промисов, и ты ждёшь, пока ВСЕ, блядь, выполнятся. Как собрать всех друзей в кино — один всегда опаздывает, сука.Promise.all([promise1, promise2]).then((results) => ...);Ждёшь всех, и только потом идёшь дальше. Один сломался — всё, пиздец всей операции.
-
Promise.race()— гонка, ёпта! Кто первый прибежал — того и тапки. Остальных в помойку.Promise.race([promise1, promise2]).then((result) => ...);Первый, кто ответил (успех или ошибка) — забирает победу. Остальные уже никому не нужны, бедолаги.
-
Promise.allSettled()— а этот — терпеливый, как святой. Ждёт, пока все хоть как-то закончат. Упал, выполнился — всё равно.Promise.allSettled([promise1, promise2]).then((results) => ...);"Мне, сука, важен результат каждого! Рассказывай, как было, даже если обосрался!"
-
Promise.any()— ждёт первого, кто не обосрётся. Первого успешного. Все остальные могут хоть в астрал улететь — ему похуй.Promise.any([promise1, promise2]).then((result) => ...);"Ну-ка, кто у меня тут молодец? Кто справился? А остальные — пидарасы шерстяные, идите лесом".
-
Promise.resolve()/Promise.reject()— это как читерство. Сразу создаёшь промис, который уже или "ок" или "всё пропало".Promise.resolve('Успех'); // Всё сразу хорошо, ебать! Promise.reject('Ошибка'); // Всё сразу плохо, пиздец.Для тестов или когда надо быстро сварганить ответ. Хуй в пальто, а не промис.
Вот и вся магия, ёпта. Главное — не запутаться, а то будет как в том анекдоте: "обещал, но не выполнил". Только здесь ошибка в консоль вылезет, а не мамка ремнём нагнётся.