Урок 5. JavaScript. Promise. Что это, как работает (+ пример)




Добавляйте меня в ВК: 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. Что это, как работает (+ пример)”

  1. Владилен, по началу я Вас хаял, так как ничего не понимал, что происходит и почему все хвалят Ваши труды, но сейчас, когда я уже по третьему разу пересматриваю уроки я наконец начал осознавать происходящее и хочу выразить Вам благодарность, меня настолько заинтересовала тема прототипного наследования и асинхронность, что аж мурашки по коже пошли, с ними ведь можно много чего интересного написать))

  2. вопрос, зачем в объекте 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));
    Неужели это из-за ограничений передачи контекста стрелочным функциям или и то и другое совместно?

  3. Я долгое время использую промисы и даже не знала, что их использовала)) Знала только, что then – тогда, а catch для ошибок нужен.

    Спасибо за очень понятные объяснения)))

  4. Столкнулся с необходимостью применения асинхронности. Прошерстил кучу статей, так и не поняв до конца как это работает, пока не наткнулся на это видео.
    Парень, да у тебя талант! Если даже такой тугодум как я всё понял. 🙂
    Благодарю.

  5. привет, что должен уметь делать джуниор фронтенд или мидл (это только уметь делать анимации, или нечто большее?) пожалуйста дайте кто-то ответ

  6. Потерял минут 40, прежде чем понять почему блок catch мне возвращает undefined, а не ошибку:( Оказалось, что между 'Error:' ЗАПЯТАЯ err , а я ставил точку. Вдруг кто столкнется)

  7. Владилен здравствуйте, у меня такой вопрос, нельзя ли вместо вызова 2го промиса в then просто саму data которая переданна в аргументе модифицировать путем data.modified = true ?

  8. Короче, вся прелесть промисов сводится к тому, что они выполняются один за другим в заданном порядке, не привязываясь к тактам интерпретатора.
    Но на хрена была изначальная вложенность при примитивных коллбеках – я так и не понял. Их с таким же успехом можно было написать друг за другом.

    А разве для того, чтобы определить, отправить resolve или reject, не нужно делать кучи ifelse? Например на проверку статуса ответа. Или это определяется автоматически?

  9. Спасибо огромное за доступную подачу информации. Владилен к тебе просьба, можешь дать какое нибудь домашнее задание по уроку, для самостоятельной практики. В голову что-то ничего не приходит. Уроки топовые, спасибо за твои труды.

  10. Cпасибо, очень понятно объяснил. Но остался один вопрос: как сделать так, чтобы цепочка промисов выполнилась именно последовательно. Т.е. один промис завершил свою работу, потом запустился 2 промис, завершился второй промис, затем 3 и т.д.?

Leave a Reply