хочешь заказать пиццу с артишоками, отправляешь заказ и ждёшь пока тебе перезвонят. Сразу ты не можешь узнать каков будет результат, но надо же как-то дальше с концептом заказа работаь! Какие могут быть варианты развития событий?
Формально два исхода, ок и не ок. Причин - миллион.
function order(...args) {
return new Promise((всеОкСтвоейПиццей, ПиццыНеБудет) => {
коллбековый_код_заказа_пиццы(...args, (err, ok) => {
if(err) {
//все по пизде пошло, вообще ответа нет
return ПиццыНеБудет(err)
}
//Ошибки как таковой нет, но заказанной пиццы не будет
if(
артишоки_кончились ||
водила_забухал ||
смешная_третья_опция
) {
return ПиццыНеБудет(ok)
}
return всеОкСтвоейПиццей(ok)
});
});
}
после этого ты можешь делать
order() который возвращает тебе промис, с двумя методами then и catch Всё что положишь в ПиццыНеБудет() всплывет в catch, Всё что положишь в всеОкСтвоейПиццей будет в then
самое милое объяснение промисов, что я когда либо видела😊
оскар пожалуйста, админы дайте ему иммунитет
Обсуждают сегодня