ES6 #13 Промисы (Promise)

  Рет қаралды 24,287

webDev

webDev

Күн бұрын

Пікірлер
@DirtyKalach
@DirtyKalach 3 жыл бұрын
Просто миллион лайков поставил бы!!! Красавчик, лучшее объяснение промисов, которое я видел
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Спасибо за отзыв)
@DirtyKalach
@DirtyKalach 3 жыл бұрын
@@YauhenKavalchuk скажи пожалуйста, где нибудь есть последовательно курс is твоих видео?
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Плейлист «полный курс» они там отсортированы)
@DirtyKalach
@DirtyKalach 3 жыл бұрын
@@YauhenKavalchuk спасибо!
@AndranikArshakyan
@AndranikArshakyan 2 жыл бұрын
спасибо за детальное объяснения promise
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Пожалуйста
@eidenblock
@eidenblock 6 жыл бұрын
Большое спасибо за твой труд. Наконец-то самое простое и точное объяснение что такое промисы. Спасибо
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
И вам спасибо за отзыв!
@velessn
@velessn 5 жыл бұрын
(коротко, примеры) => результат(отличное видео) :-)
@РУСЛАНОРАСБАЕВ-т1и
@РУСЛАНОРАСБАЕВ-т1и 2 жыл бұрын
Очень отличная подача!), спасибо большое
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Спасибо за отзыв
@lilishum1026
@lilishum1026 Жыл бұрын
Спасибо большое, очень доступно и понятно.
@YauhenKavalchuk
@YauhenKavalchuk Жыл бұрын
Спасибо за отзыв
@Land-op1kw
@Land-op1kw 3 жыл бұрын
Однозначно лайк! Лучший!
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Спасибо)
@vladimirgnedko858
@vladimirgnedko858 3 жыл бұрын
почему так все понятно?)) Зачет конечно и подписка!
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Спасибо
@dneposeda
@dneposeda 6 жыл бұрын
Спасибо! Коротко и самое главное понятно!
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
И вам спасибо за отзыв!
@sashashumchuk6568
@sashashumchuk6568 6 жыл бұрын
Все чётко и ясно) лайк.
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Спасибо
@Infinity-zf8ms
@Infinity-zf8ms 4 жыл бұрын
Спасибо за ваш труд)
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Спасибо за отзыв)
@ВладимирГугин-ш7щ
@ВладимирГугин-ш7щ 3 жыл бұрын
Спасибо что без лишней фигни)
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Пожалуйста
@mikhailivlev
@mikhailivlev 4 жыл бұрын
ой молодец, реально доступно рассказал)
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Спасибо)
@8malek
@8malek 5 жыл бұрын
Правильно я понял ... В первом блоке , где создаём промис ( new Promise ) мы делаем любой наш код ( условия , функции и тд ) в конце кода вызываем resolve() ... Потом по-любому должен быть хотябы 1 then и в этом блоке мы получаем функция , где указываем , что хотим делать , когда промис выполнился , например выведем модальное окно с какой-то инфой и так далее , задаём then пока собираемся выполнять какие-то действия последовательно ... Типа выполнился промис , первый then вывел красный div , как это произошло , вызывается второй then , где мы выводим синий блок , потом 3-й then , где мы выводим картинку и тд , пока хотим выполнять какие-то действия друг за другом ???
@armorunit6970
@armorunit6970 Жыл бұрын
Привет! Как он устроен это понятно. Но где может понадобиться такая конструкция `new Promise((resolve, reject) => {...})` ? С фетчом всё понятно - есть реальное практическое применение. Но где реально упрощает жизнь `new Promise()` ?
@armorunit6970
@armorunit6970 Жыл бұрын
Добавлю: Это в setTimeout() можно отправить resolve(), а как я отправлю его в какую-нибудь реальную асинхронную вещь?
@izograph
@izograph 4 жыл бұрын
Спасибо! Очень лаконично и ясно!
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Пожалуйста
@ineptDev
@ineptDev 5 жыл бұрын
супер!
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Спасибо!
@vit944
@vit944 2 жыл бұрын
Добрый день. А можно узнать, как можно данные с сервера положить в тег select?
@YauhenKavalchuk
@YauhenKavalchuk 2 жыл бұрын
Это трудно пояснить словами. Приблизительный механизм можно найти в этом видео: kzbin.info/www/bejne/gn3YnpKamNeVfNE
@Zadorozhniy39
@Zadorozhniy39 6 жыл бұрын
Спасибо :)
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Пожалуйста)
@osapo24
@osapo24 Жыл бұрын
Сложновато но не здаемся
@YauhenKavalchuk
@YauhenKavalchuk Жыл бұрын
👍
@pauldudich
@pauldudich 3 жыл бұрын
Когда был пример с fetch, то все было понятно, сам неоднократно использую эту конструкцию, но в первом примере с промис, резолв и реджект я никак не могу разобраться, не понимаю практического применения этой конструкции, это типо усложненная версия второго примера?
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Нет, это нативная реализация промиса, когда вы сами задаёте ему логику
@Civilizer1976
@Civilizer1976 3 жыл бұрын
Правильно ли я понял из документации, что лучше в reject передавать экземпляр от объекта Error, что в свою очередь автоматически пробросит ошибку в .catch ? типа: const myPromise = new Promise((resolve, reject) => { let connection = true if(connection){ resolve('connection established') } else { reject(new Error('Connection refused')) //new Error gпробросит автоматом в .catch } )} myPromise .then(message => {console.log(message)}) //при connection = true выведет значение из resolve .catch(error => {conlole.log(error)}) //при connection = false выведет значение из reject: ('Connection refused')
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
да, всё верно
@majestick
@majestick 10 ай бұрын
В начале синхронность и асинхронность спутали?
@YauhenKavalchuk
@YauhenKavalchuk 10 ай бұрын
☹️
@SunLightDH
@SunLightDH 4 жыл бұрын
catch не обязательно, ошибку, исключение можно ловить вторым аргументом then(res, rej), то есть rej должна быть функцией, в описании которой есть аргумент rej(arg){code}, так вот значение исключения, например текст ошибки: throw "someError", будет передан в arg функции rej
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
А зачем использовать костыль, если нативно предоставляется метод для обработки. Сколько работаю, никогда не встречал такой вариант, как вы описали
@SunLightDH
@SunLightDH 4 жыл бұрын
@@YauhenKavalchuk ну там есть свои нюансы использования того или иного варианта, хотя это может вообще не существенно. Просто когда вы отлавливает в catch, вы как бы уже точно ориентируетесь на возможную ошибку без дальнейшей цепочки выполнения, после успешного завершения, а если через then(arg1, arg2), тогда цепочку выполнения можно продолжать, перейдя к первому аргументу-функции, если ошибки не возникло
@ВладиславСоловйов-д2м
@ВладиславСоловйов-д2м 4 жыл бұрын
@@SunLightDH .then(func1, func2) func2 не отловит ошибку в func1, catch отловит. Никто не запрещает делать then после catch + есть finally
@konstantinkkk8397
@konstantinkkk8397 6 жыл бұрын
Было бы круто если бы ты к каждому своему уроку давал задания, и пускай сбрасывают кто как его решил, и друг друга исправляют
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Идея хорошая, но мне кажется что она не будет популярна. А тем более сбрасывать и проверять друг-друга. Сам думал об этом, но это всё мало вероятно.
@xD-hu3gw
@xD-hu3gw 4 жыл бұрын
на практике бы хотел посмотреть как это можно использовать) но с фетчем понятно
@alexanderpogudaev8496
@alexanderpogudaev8496 3 жыл бұрын
Автор видео объясняет хорошо... Наверное я что-то недопонимаю, но почему-то мне кажется, что промисы вовсе не упрощают callback hell...
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Об этом пишется во всех статьях по данной теме. Если преимущество не видно, то возможно, вы долго работали с callback, вот и привыкли)
@alexanderpogudaev8496
@alexanderpogudaev8496 3 жыл бұрын
@@YauhenKavalchuk Вообще я как-то больше по С/С++. JavaScript только недавно начал осваивать. CallBack-и и в C использовал, но там это не носит такого масштаба. Поэтому обработка событий и асихронщина в JS сильно ломает мне мозг, но привыкаю понемногу. Спасибо за ответ и уроки!
@alexanderyinyang1436
@alexanderyinyang1436 6 жыл бұрын
Подскажи пожалуйста, что имеется ввиду kzbin.info/www/bejne/jnWUfn6ubMp8q7M ? функция data => console.log(data) все же возвращает data дальше по цепочке промисов? Я просто ожидал, что ты добавишь что-то вроде data => {console.log(data); return data;}
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Не по цепочке в моём случае ничего не возвращается. Я об этом упомянул и сказал что это просто пример для того что бы проверить полученные данные. Если данные нужно передать дальше, то используется тот синтаксис что написали вы!)
@chirog13
@chirog13 4 жыл бұрын
Я не понял, откуда data в ответе взялась, откуда мы понимаем что там будет?
@sergeys4732
@sergeys4732 3 жыл бұрын
У нас данные отдал резолв, потому что запрос был успешный
@YauhenKavalchuk
@YauhenKavalchuk 3 жыл бұрын
Они пришли в ответе, так как был resolve. Он собственно и отдал данные
@АсланКартоев-ф6д
@АсланКартоев-ф6д 4 жыл бұрын
Скажите а что за параметр data в then?
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Это данные, которые возвращаются из промиса
@МаксКондратенко-ц2е
@МаксКондратенко-ц2е 6 жыл бұрын
Спасибо за видео. Получается что промисы используются в основном для получения данных ? В связке с fetch? И нет смысла создавать через new Promise?
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Пожалуйста. Конструкция new Promise и правда редко используется, но что касается самих просимой, то их использование только fetch не ограничивает. Они отлично работают в связке с любыми асинхронными операциями. Но основная цель, да, я бы сказал получение данных
@olegpristashkin9078
@olegpristashkin9078 4 жыл бұрын
Так если мы в es5 можем использовать try catch блок, зачем нам проимсы? Мы же в try catch можем обработать успешный и неуспешный кусок программы
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Ну, промисы это неотъемлемая часть асинхронного JS, пропустить данную тему было бы не правильно
@dodokwak
@dodokwak 4 жыл бұрын
Вопрос по 8:01 строка 22: можно(нужно) ли здесь explicit использовать return? Спасибо.
@YauhenKavalchuk
@YauhenKavalchuk 4 жыл бұрын
Нет не нужно. Если вам нужно получить данные, то лучше передать их в функцию, которую описать внутри then. И внутри данной функции работают с ними
@dodokwak
@dodokwak 4 жыл бұрын
@@YauhenKavalchuk спасибо.
@Gavr-dev
@Gavr-dev 6 жыл бұрын
немножко не понял как с fetch сделать тоже что и перед этим делали с помощью таймаута
@Gavr-dev
@Gavr-dev 6 жыл бұрын
там создавался new Promise, а здесь я что-то не понял что происходит
@YauhenKavalchuk
@YauhenKavalchuk 6 жыл бұрын
Таймаут в промисе я задал, что бы сделать код асинхронным, это довольно распространённый пример (скажем так эмуляция). С fetch таймер задавать не нужно, т.к. он и так работает асинхронно.
@dispeltr1183
@dispeltr1183 5 жыл бұрын
получается then всегда возвращает промис?
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Да
@kirillbaryba746
@kirillbaryba746 5 жыл бұрын
Евгений , есть вопрос . Использую Ajax (Fetch Api) делаю запрос к серверу через каждые N минут. Набросал код, но есть сомнения что я правильно это делаю jsfiddle.net/kirillos/kapxe4zd/16/ Можешь помочь разобраться ? Спасибо
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Много кода не нужного. По крайней мере обёртка из Promice. Просто используйте fetch - это конструкция и так возвращает промис. А ещё можете посмотреть вариант async/await - это следующее виде, если не ошибаюсь
@kirillbaryba746
@kirillbaryba746 5 жыл бұрын
@@YauhenKavalchuk Спасибо
@EugeniaChe
@EugeniaChe 5 жыл бұрын
Классное объяснение! Скажи а что чаще используешь в реальных проектах, fetch или axios?
@YauhenKavalchuk
@YauhenKavalchuk 5 жыл бұрын
Спасибо! Если выбирать только из этих 2х то чаще использовал fetch.
ES6 #14 Async/Await
8:09
webDev
Рет қаралды 11 М.
Quilt Challenge, No Skills, Just Luck#Funnyfamily #Partygames #Funny
00:32
Family Games Media
Рет қаралды 55 МЛН
Каха и дочка
00:28
К-Media
Рет қаралды 3,4 МЛН
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 700 М.
小丑女COCO的审判。#天使 #小丑 #超人不会飞
00:53
超人不会飞
Рет қаралды 16 МЛН
I Downloaded Malware from Google Ads
8:13
Cyb3rMaddy
Рет қаралды 858
Язык Си для начинающих / #1 - Введение в язык Си
15:39
JavaScript событийный цикл Event Loop, асинхронный код, промисы (Promise), async / await
24:03
ES6 #17 Set & Map
9:28
webDev
Рет қаралды 11 М.
ES6 #18 Модули (Modules)
7:05
webDev
Рет қаралды 21 М.
Промисы в JavaScript [Полный курс 2023] для новичков
49:17
Какие-то уроки
Рет қаралды 20 М.
Что такое промисы в JavaScript. Фундаментальный JavaScript
24:51
Михаил Непомнящий
Рет қаралды 47 М.
Урок 5. JavaScript. Promise. Что это, как работает (+ пример)
23:18
Quilt Challenge, No Skills, Just Luck#Funnyfamily #Partygames #Funny
00:32
Family Games Media
Рет қаралды 55 МЛН