Добавляйте меня в ВК: https://vk.com/vladilen.minin
Telegram: https://teleg.one/js_by_vladilen
Instagram: https://www.instagram.com/vladilen.minin
Группа ВК: https://vk.com/js_by_vladilen
Поддержать выпуск новых видео:
ЯД: 410013757655670
BTC: 1FfskGr1qP3NdmYGXRtu4UFLhxo2e1rhS4
Полный курс по Angular 8+:
https://clc.to/angular
Полный курс по ReactJS:
https://clc.to/react
NuxtJS + NodeJS – Фулстек разработка:
https://clc.to/node-nuxt
Урок 5. JavaScript. Promise. Что это, как работает (+ пример)
В ролике я расскажу про то, что такое Promise в JavaScript.
Вы узнаете как они работают, зачем нужны и как с помощью них работать с асинхронными операциями
Сложный JavaScript простым языком:
Original source
42 responses to “Урок 5. JavaScript. Promise. Что это, как работает (+ пример)”
Превосходно! Одни из лучших материалов. Так держать….
Огромное спасибо. Перестаешь чувствовать себя чайником. Пожалуйста продолжайте
Владилен спасибо
Владилен, по началу я Вас хаял, так как ничего не понимал, что происходит и почему все хвалят Ваши труды, но сейчас, когда я уже по третьему разу пересматриваю уроки я наконец начал осознавать происходящее и хочу выразить Вам благодарность, меня настолько заинтересовала тема прототипного наследования и асинхронность, что аж мурашки по коже пошли, с ними ведь можно много чего интересного написать))
вопрос, зачем в объекте Promise в конструктор передавать метод с двумя параметрами resolve и reject? если эту деталь можно сокрыть в самом "классе", то есть вызывать this.resolve() уже существующий в этом "классе" , который будет вызывать метод, указанный в then, для явности и наглядности происходящего? например я бы реализовал следующим образом:
function MyPromise(toDoFnc)
{
this.catch = function(onFailure)
{
this.fireFailire = onFailure;
return this;
}
this.then = function(onFinished)
{
this.fireResolve = onFinished;
return this;
}
toDoFnc.call(this);
return this;
}
const p = new MyPromise(function() {
console.log('tut', this);
setTimeout(() => {
console.log('blabla', this);
this.fireResolve('RESOLVED');
}, 2000);
});
p.then((data) => console.log(data));
Неужели это из-за ограничений передачи контекста стрелочным функциям или и то и другое совместно?
Тема не раскрыта. Уроки по другим темам – супер, но этот неудачный
Как всегда ясно и понятно) спасибо автору!
Спасибо большое, помог разобраться!
Спасибо!)
идеально обяснил!!
Все круто !
Продолжай в этом же духе !
Спасибо очень круто подаёшь материал
Спасибо за урок! Единственное – не совсем понтяно – https://youtu.be/1idOY3C1gYU?list=PLqKQF2ojwm3l4oPjsB9chrJmlhZ-zOzWT&t=1348
как определить, что первым выполнен какой-то конкретный promisse.
круто делай свои видосы) очень помогают
Замечательное видео. Спасибо.
then – Тогда
Спасибо большое!!)Узнал много нового
Даже с таким хорошим объяснением, я ничего не понял =(
Спасибо!
Я долгое время использую промисы и даже не знала, что их использовала)) Знала только, что then – тогда, а catch для ошибок нужен.
Спасибо за очень понятные объяснения)))
Задонатил на Udemy, спасибо за качественные объяснения.
Можно ли с помощью promise выстрелить себе в ногу и попасть в deadlock?
Доходчиво, спс
Столкнулся с необходимостью применения асинхронности. Прошерстил кучу статей, так и не поняв до конца как это работает, пока не наткнулся на это видео.
Парень, да у тебя талант! Если даже такой тугодум как я всё понял. 🙂
Благодарю.
Честно запутанный урок, а не проще объяснитъ весь урок на примерах then и catch было намного понятней
привет, что должен уметь делать джуниор фронтенд или мидл (это только уметь делать анимации, или нечто большее?) пожалуйста дайте кто-то ответ
Эйй йо
Может я в танке или что-то пропустил. Но кажется в видео нет описания отличий промисов от таймаутов?
Потерял минут 40, прежде чем понять почему блок catch мне возвращает undefined, а не ошибку:( Оказалось, что между 'Error:' ЗАПЯТАЯ err , а я ставил точку. Вдруг кто столкнется)
Это пожалуй самая профессиональная подача материала!
when – когда, then – тогда. В промисе колбэк-функция -> resolve (разрешить) -> then(тогда) ->…
Владилен здравствуйте, у меня такой вопрос, нельзя ли вместо вызова 2го промиса в then просто саму data которая переданна в аргументе модифицировать путем data.modified = true ?
Короче, вся прелесть промисов сводится к тому, что они выполняются один за другим в заданном порядке, не привязываясь к тактам интерпретатора.
Но на хрена была изначальная вложенность при примитивных коллбеках – я так и не понял. Их с таким же успехом можно было написать друг за другом.
А разве для того, чтобы определить, отправить resolve или reject, не нужно делать кучи ifelse? Например на проверку статуса ответа. Или это определяется автоматически?
Chuvak. Ti ZOLOTO!!!
во всех примерах сеттаймоут, без него слабо?
9:46 каким сочетанием клавиш такую штуку сделать (быстро выровнять)?
ОГРОМНОЕ ТЕБЕ СПАСИБО!
но почему сразу господа?
//
Спасибо огромное за доступную подачу информации. Владилен к тебе просьба, можешь дать какое нибудь домашнее задание по уроку, для самостоятельной практики. В голову что-то ничего не приходит. Уроки топовые, спасибо за твои труды.
Cпасибо, очень понятно объяснил. Но остался один вопрос: как сделать так, чтобы цепочка промисов выполнилась именно последовательно. Т.е. один промис завершил свою работу, потом запустился 2 промис, завершился второй промис, затем 3 и т.д.?
Сначало лайк – а потом смотрю