Я не мог понять материал на learn.javascript по этой теме. И вообще не мог найти хорошее объяснение в других источниках. У меня просто перевернулось понимание промисов после этого урока, я нашёл ответы на вопросы с проваленых собесов) И вообще этот канал - клад, для джаваскриптизера)
Автор обаятельная девушка с прекрасным чувством юмора) Смотрю с открытым ртом и из-за хорошего материала и из-за милого учителя)) СПС вам за классный комплекс: знаний и няшностей!!)
Чтож, под прошлым видео писал, что на собеседовании сказали: «мы вам перезвоним», сейчас напишу, что взяли в другую компанию на оплачиваемую стажировку пилить их crm-ку, растём! А тебе удачи во всех начинаниях, классный и очень понятный формат подачи.
Просто шикарное видео и подача, после прочтения статьи на learnjs вроде бы все понятно, но поверхностно, хотелось как раз подробно узнать что и куда и откуда идет, и после того как сам сел разбираться и ничего не получалось, наткнулся на ваше видео с подробными объяснениями как раз по внутреннему строению, огромное спасибо!
я наверное один из немногих, кто вначале хотел поставить вам гневный отзыв но потом проникся и даже полюбил) и да, пересмотрел все на ютубе по этой теме и ваш видеоурок действительно самый лучший на данный момент спасибо.
Промисы - это наверное одна из самых своеобразных тем, которые могут спросить на собесе и на чем-то таком подловить. Сам вот хожу на собесы сейчас, на уровень миддл- и недавно вот подловили на промисах разок.
Я не понимаю. На 29:00. В then мы проверяем состояние, если оно pending - копим вызов самого метода then в массиве. Когда происходит resolve - он вызывает каждый отложенный then. Но это ведь к изначальному then уже не имеет отношения. Код выполняется уже не из строк 95:97. Хотелось бы побольше узнать что значит процесс накопления функций, и как они исполняются потом во время resolve.
Классное видео,но мне как новичку после прохождения базового курса js это стало еще более непонятным))) Скорее из-за неполного понимания классов)) Методы еще понятны,а вот эти resolve и reject принимают value или error,а токуда они их берут и т.д непонятно)
какой-то непорядок в ссылках на телеграмм. то что в видео отсутствует. по ссылке под видео правильная на этот момент. а само видео супер. если бы раньше посмотрел, прошел бы собеседование успешно.
4:52 очень важная ошибка! Функция которую принимает в себя конструктор Promise не является колбэком, а вот аргументы этой функции (resolve, reject) как раз таки предназначены для передачи колбэков.
ваша имплементация (как и имплементация из первой ссылки в описании) не выполняет первое соглашение из mdn : "Callbacks added with then() will never be invoked before the completion of the current run of the JavaScript event loop." console.log(1) const p = new Promise((resolve, reject) => { console.log(2) resolve('done') }) p.then(result => { console.log(4) }) console.log(3) у вас будет выведено 1 2 4 3 а должно быть 1 2 3 4
Полагаю не реализованы микрозадачи. Вообще не понимаю смысл реализации, если читая спецификацию можно понять, что некоторые проверки невозможно выполнить через js, что делает реализацию не релевантной и с дырами.
@@webelartЦепочки действительно реализованы. А что на счет констант, их никак не положить в класс? Ведь Promise не требует внешних констант для работы.
@@martDKNY Ммм, интересный вопрос. Промис, как и любая библиотека может реализовываться по разному. Обычно, когда происходит некоторое деление кода, это удобнее. Есть класс, есть какие-то отдельные хелперы (функции) и внешние переменные, в итоге всё импортируется как один пакет. Что-то скрыто, что-то торчит наружу. Можно посмотреть на реализацию промиса в npm (github.com/then/promise/tree/master/src). Здесь есть множество различных файлов, делений и переменных. Класть всё в один класс необходимости нет. Можно ли? Да можно положить, при этом нужно обязательно их сделать приватными, т.е. чтобы их извне достать было нельзя и как-то изменить. Здесь можно уточнить про внешние константы. В текущем оформлении они действительно внешние. Есть файл index.js, который никак не замкнут, в другом файле можно получить доступ к любым его переменным. Возможно это вызвало смущение. Один файл без различных наложений использовался для упрощения написания кода. В целом текущий пример был создан, чтобы посмотреть как всё выглядит изнутри. Но если брать этот код и встраивать в реальный проект, то лучше его оформить как модуль и импортировать конкретно класс Promise, всё остальное будет скрыто и переменные внешними не будут. Либо сделать замыкание с самовызывающейся функцией и через window добавлять глобальность к тем вещам, которые должны быть внешними (function () {... код проекта...window.MyPromise....} ()). В общем всё зависит от того как надо, чтобы было оформлено в конечном итоге :)
@@webelart Спасибо! У меня видимо путаница с основами. Но promise является и частью стандарта языка. И я запутался тут в связке прототип-инстанс-объявление. В любом случае мне нужно еще поразбираться. Еще раз спасибо. С наступающим!
Вы имеете ввиду, когда метод then в класс добавляю? Здесь скорее я определяю этот метод, т.е. класс MyPromise и настоящий Promise никак не соединяются, это два разных класса. В MyPromise я скорее описываю как примерно может выглядеть Promise внутри. И определяю собственные методы, такие как then и catch. Стало понятнее? Либо уточните вопрос.
Здравствуйте, Елена! Думал писать, не писать комментарий, решил написать. Я смог посмотреть только 22 мин, после 17й минуты смотрел с трудом. Объясню почему, если этот контент позиционируется как для новичков, то почему на мониторе какие то гонки, дикие скроллы и перескакивания по коду за доли секунды? Как новичок порекомендовал бы вам сбавить темп и меньше сбиваться, потому что когда чего то не понимаешь концентрируешься на всем и вещи типа - вот здесь вот так, а нет вот так, скролл, там подправили, здесь дописали и т.д (пересмотрите 17ю минуту, что там происходит) ). Я просто выразил мнение как начинающий, за контент спасибо, но пока отложу дальнейший просмотр этого урока.
Здравствуйте! Спасибо за комментарий! Здесь у меня идёт кодинг в реальном времени и поэтому думаю так получается. Плюс я в тесты не вынесла эти небольшие проверки, возможно если разделить на файлы было бы более удобно :) Но в любом случае думаю, когда я риал код пишу, то здесь настолько всё интуитивно, что такие вещи сложно контролировать. Думаю, чтобы лучше в целом осознать видео, т.к. я здесь имплементацию рассказываю (а это уже левел хороший), поэтому если вы новичок, то лучше предварительно немного ознакомиться с темой промисов, например на том же learn.javascript.ru/promise-basics, потыкаться, попробовать. И возвращайтесь к видео. Такие темы очень круто глубже разбирать, даже если всё с первого раза не понятно.❤️
Видео очень крутое, но я бы тоже не понял, если бы ещё их не использовал. Обязательно посмотри его чуть позже для закрепления! Повторюсь: видео очень стоящее на мой взгляд
@@webelart Возможно, вы хороший веб разработчик, но вы не смогли в первые минуты этого видео заинтересовать меня на продолжение его досмотра, одно бла-бла-бла, а значит у вас точно небольшой талант педагога. В самом начале вы сообщаете, что сами «плаваете» в этой теме, но хотите обучить других. Куда уж мне расти до ваших видео, в силу возраста у меня не так много времени, чтобы тратить его на «воду» в вашем введении. Когда мы начинали программировать в начале 90, мы разбирали DOS игрушки и программки и писали на Ассемблере свой код. У нас была всего одна книга великого Питера Абеля и не какого видео. Сейчас же каждый, кто научился забивать гвоздь, пусть криво и не до конца, считает, что может научить этому других. Ответ на свой вопрос уже нашел у другого автора, здесь же на Ютубе.
@@АндрейФролов-е6щ Ну судя по комментам не смогла зацепить только вас. Так что давайте мы не будем диванным аналитиком продакшен контент. Не нравится, берём камеру и цепляем людей. То чем вы занимаетесь, называется хейтерство. И вам точно не на мой канал.
Также замечу, что вам определённо нужно тренировать концентрацию. Три минуты это пожалуй полный провал. Как вас вообще в веб-разработку-то занесло? P.S. Вопрос риторический.
@@webelart крутнул коментарии вниз и самый последний от alexidino, он пишет, что продержался на этом видео 17 минут, чуть выше Kosta Derabin пишет: "4 минута... ну давай уже начнём промисы", он видимо до 4 мин. дотерпел... конечно с такой подачей канал в топку.
Your RUclips videos are so incredibly good that I can divide my life as a JavaScript developer into before and after discovering them !!!
Елена - много раз просил и поэтому ОГРОМЕННОЕ спасибо. Годных видео по этой теме для и понятных для новичков оч мало. Елена ты красотка и крутая
❤️❤️❤️
Я не мог понять материал на learn.javascript по этой теме. И вообще не мог найти хорошее объяснение в других источниках.
У меня просто перевернулось понимание промисов после этого урока, я нашёл ответы на вопросы с проваленых собесов)
И вообще этот канал - клад, для джаваскриптизера)
Спасибо! И полезно, и весело. Успехов на чужбине и соотечественников не забывайте.
Елена большое спасибо Вам за материал. Продолжайте пжл в том же духе
Автор обаятельная девушка с прекрасным чувством юмора) Смотрю с открытым ртом и из-за хорошего материала и из-за милого учителя)) СПС вам за классный комплекс: знаний и няшностей!!)
Спасибо огромное! Очень приятно! ❤️
Спасибо за видео, реально нужно было с кем-то сесть и ещё раз прописать как это работает
А кому скроллы не нравятся на 17й минуте, так это же не стрим) возьми отмотай, пересмотри, замедли, ну серьёзно
это же какое-то великолепное великолепие...
Спасибо!! Очень интересное видео!
Promise. Custom promise. Js. Промис, кастомный промис, как работает промис. Проммис, промисс
Елена, огромное Вам спасибо! Стало намного понятнее, как работают промисы! 👍👏😍
Чтож, под прошлым видео писал, что на собеседовании сказали: «мы вам перезвоним», сейчас напишу, что взяли в другую компанию на оплачиваемую стажировку пилить их crm-ку, растём!
А тебе удачи во всех начинаниях, классный и очень понятный формат подачи.
😍 Поздравляю вас с найденной работой и новым жизненным этапом!
Спасибо большое за пожелание успеха, мне очень приятно! ❤️
Просто шикарное видео и подача, после прочтения статьи на learnjs вроде бы все понятно, но поверхностно, хотелось как раз подробно узнать что и куда и откуда идет, и после того как сам сел разбираться и ничего не получалось, наткнулся на ваше видео с подробными объяснениями как раз по внутреннему строению, огромное спасибо!
я наверное один из немногих, кто вначале хотел поставить вам гневный отзыв
но потом проникся и даже полюбил)
и да, пересмотрел все на ютубе по этой теме и ваш видеоурок действительно самый лучший на данный момент
спасибо.
Спасибо! Побольше бы таких имплементаций или поллифилов. А так видео просто 🔥
Ты настолько клёвая,что даже после траблов со звуком смогла заново записать урок
Промисы - это наверное одна из самых своеобразных тем, которые могут спросить на собесе и на чем-то таком подловить.
Сам вот хожу на собесы сейчас, на уровень миддл- и недавно вот подловили на промисах разок.
очень крутые видео у тебя прям ну очень, смотреть одно удовольствие очень интересно было никогда не задумывался как работает под капотом промис)
Ждем имплементацию SetTimeout)
Не останавливайся! Твои видео лучшие 👏 Вдохновения тебе и успехов в карьере ❤
Спасибо! ❤️❤️❤️
Супер, ждал очередного урока 😊
на данный момент это лучший разбор Промисов в русском сегменте ютуба, Елена, респектище 👍👍👍
мне понравилось, удачи Елена!
звучит очень доступно и прикольно)
Я не понимаю. На 29:00. В then мы проверяем состояние, если оно pending - копим вызов самого метода then в массиве.
Когда происходит resolve - он вызывает каждый отложенный then.
Но это ведь к изначальному then уже не имеет отношения. Код выполняется уже не из строк 95:97.
Хотелось бы побольше узнать что значит процесс накопления функций, и как они исполняются потом во время resolve.
посмотрел, послушал., хотя я Java изучаю) спасибо
Круто. Было очень полезно. Однозначно лайк и подписка.
Классное видео,но мне как новичку после прохождения базового курса js это стало еще более непонятным))) Скорее из-за неполного понимания классов)) Методы еще понятны,а вот эти resolve и reject принимают value или error,а токуда они их берут и т.д непонятно)
Нереально имбовый контент, спасибо, Елена.
Лена расскажите пожалуйста как поставить правильно пароль на жёсткий диск
Красотка)
Спасибо, очень важная и полезная тема!
какой-то непорядок в ссылках на телеграмм. то что в видео отсутствует. по ссылке под видео правильная на этот момент. а само видео супер. если бы раньше посмотрел, прошел бы собеседование успешно.
супер! Сенкс!!!
Спасибо тебе!
Есть ли возможность как в Python смотреть как это всё написано внутри JavaScript, разработчиками языка?
Thx
Спасибо за урок, ты вообще супер.
Спасибо. Очень хорошее видео.
😘😘😘
4:52 очень важная ошибка! Функция которую принимает в себя конструктор Promise не является колбэком, а вот аргументы этой функции (resolve, reject) как раз таки предназначены для передачи колбэков.
Никакой ошибки нет - developer.mozilla.org/en-US/docs/Glossary/Callback_function.
ваша имплементация (как и имплементация из первой ссылки в описании) не выполняет первое соглашение из mdn : "Callbacks added with then() will never be invoked before the completion of the current run of the JavaScript event loop."
console.log(1)
const p = new Promise((resolve, reject) => {
console.log(2)
resolve('done')
})
p.then(result => {
console.log(4)
})
console.log(3)
у вас будет выведено 1 2 4 3
а должно быть 1 2 3 4
Полагаю не реализованы микрозадачи. Вообще не понимаю смысл реализации, если читая спецификацию можно понять, что некоторые проверки невозможно выполнить через js, что делает реализацию не релевантной и с дырами.
няшно
Лайк..!
на 20:32 вы снова выводите в консоль Promise, а не MyPromise, ну или я чего-то не понял
Да, очепятка 😐 Сделала скрин с этим тестом: monosnap.com/file/mVO6nGRjStldZRpyxQN7i8wOA9uxfF
@@webelart Спасибо, а то я уже не знал, что делать. Начал думать, что это всё обман, декорации, понимаете?
@@ДенисКац-э1ь Почему так подумали? По файлу просто забыла его сохранить и вывела предыдущий результат.🙂
@@ДенисКац-э1ь ❤️
А как сделать, чтобы работали 2 зена подряд then().then() ?
И как положить константы PENDING, FULFILLED, REJECTED в промис ?
В текущем примере цепочки реализованы и константы тоже определены.
@@webelartЦепочки действительно реализованы. А что на счет констант, их никак не положить в класс? Ведь Promise не требует внешних констант для работы.
@@martDKNY Ммм, интересный вопрос. Промис, как и любая библиотека может реализовываться по разному. Обычно, когда происходит некоторое деление кода, это удобнее. Есть класс, есть какие-то отдельные хелперы (функции) и внешние переменные, в итоге всё импортируется как один пакет. Что-то скрыто, что-то торчит наружу. Можно посмотреть на реализацию промиса в npm (github.com/then/promise/tree/master/src). Здесь есть множество различных файлов, делений и переменных.
Класть всё в один класс необходимости нет. Можно ли? Да можно положить, при этом нужно обязательно их сделать приватными, т.е. чтобы их извне достать было нельзя и как-то изменить.
Здесь можно уточнить про внешние константы. В текущем оформлении они действительно внешние. Есть файл index.js, который никак не замкнут, в другом файле можно получить доступ к любым его переменным. Возможно это вызвало смущение. Один файл без различных наложений использовался для упрощения написания кода. В целом текущий пример был создан, чтобы посмотреть как всё выглядит изнутри. Но если брать этот код и встраивать в реальный проект, то лучше его оформить как модуль и импортировать конкретно класс Promise, всё остальное будет скрыто и переменные внешними не будут. Либо сделать замыкание с самовызывающейся функцией и через window добавлять глобальность к тем вещам, которые должны быть внешними (function () {... код проекта...window.MyPromise....} ()). В общем всё зависит от того как надо, чтобы было оформлено в конечном итоге :)
@@webelart Спасибо! У меня видимо путаница с основами. Но promise является и частью стандарта языка. И я запутался тут в связке прототип-инстанс-объявление. В любом случае мне нужно еще поразбираться. Еще раз спасибо. С наступающим!
then когда вы пишите в классе, - значит вы переопределяете его там?
Вы имеете ввиду, когда метод then в класс добавляю? Здесь скорее я определяю этот метод, т.е. класс MyPromise и настоящий Promise никак не соединяются, это два разных класса. В MyPromise я скорее описываю как примерно может выглядеть Promise внутри. И определяю собственные методы, такие как then и catch. Стало понятнее? Либо уточните вопрос.
@@webelart, я было подумал, что MyPromise наследует от настоящего Promise, надо ещё пересмотреть. Спасибо, полезное видео!
@@ЕвгенийБыков-г4ы нет, наследования нет. :)
эм...почему не try/catch?
???
Здравствуйте, Елена! Думал писать, не писать комментарий, решил написать. Я смог посмотреть только 22 мин, после 17й минуты смотрел с трудом. Объясню почему, если этот контент позиционируется как для новичков, то почему на мониторе какие то гонки, дикие скроллы и перескакивания по коду за доли секунды? Как новичок порекомендовал бы вам сбавить темп и меньше сбиваться, потому что когда чего то не понимаешь концентрируешься на всем и вещи типа - вот здесь вот так, а нет вот так, скролл, там подправили, здесь дописали и т.д (пересмотрите 17ю минуту, что там происходит) ). Я просто выразил мнение как начинающий, за контент спасибо, но пока отложу дальнейший просмотр этого урока.
Здравствуйте! Спасибо за комментарий! Здесь у меня идёт кодинг в реальном времени и поэтому думаю так получается. Плюс я в тесты не вынесла эти небольшие проверки, возможно если разделить на файлы было бы более удобно :)
Но в любом случае думаю, когда я риал код пишу, то здесь настолько всё интуитивно, что такие вещи сложно контролировать.
Думаю, чтобы лучше в целом осознать видео, т.к. я здесь имплементацию рассказываю (а это уже левел хороший), поэтому если вы новичок, то лучше предварительно немного ознакомиться с темой промисов, например на том же learn.javascript.ru/promise-basics, потыкаться, попробовать. И возвращайтесь к видео. Такие темы очень круто глубже разбирать, даже если всё с первого раза не понятно.❤️
@@webelart ок, спасибо, позже вернусь.
Видео очень крутое, но я бы тоже не понял, если бы ещё их не использовал. Обязательно посмотри его чуть позже для закрепления! Повторюсь: видео очень стоящее на мой взгляд
Да, видео очень крутое. Когда допиливается then с promise вер. можно сократить
Думаю ответ прост. Автор не является педагогом, а значит доносит мысли как получается. Все приходит с опытом товарищ )
4 минута... ну давай уже начнём промисы
😁😁😁😁
Дир , Елена ! Залейте пжлста свои видео в российский чебурнет . Нам скоро отключат Ютуб !
Три минуты послушал и выключил, одна трепотня...
Растите, возможно в будущем дорастёте до уровня, что сможете слушать и понимать мои видео.
@@webelart Возможно, вы хороший веб разработчик, но вы не смогли в первые минуты этого видео заинтересовать меня на продолжение его досмотра, одно бла-бла-бла, а значит у вас точно небольшой талант педагога. В самом начале вы сообщаете, что сами «плаваете» в этой теме, но хотите обучить других. Куда уж мне расти до ваших видео, в силу возраста у меня не так много времени, чтобы тратить его на «воду» в вашем введении. Когда мы начинали программировать в начале 90, мы разбирали DOS игрушки и программки и писали на Ассемблере свой код. У нас была всего одна книга великого Питера Абеля и не какого видео. Сейчас же каждый, кто научился забивать гвоздь, пусть криво и не до конца, считает, что может научить этому других. Ответ на свой вопрос уже нашел у другого автора, здесь же на Ютубе.
@@АндрейФролов-е6щ Ну судя по комментам не смогла зацепить только вас. Так что давайте мы не будем диванным аналитиком продакшен контент. Не нравится, берём камеру и цепляем людей. То чем вы занимаетесь, называется хейтерство. И вам точно не на мой канал.
Также замечу, что вам определённо нужно тренировать концентрацию. Три минуты это пожалуй полный провал. Как вас вообще в веб-разработку-то занесло?
P.S. Вопрос риторический.
@@webelart крутнул коментарии вниз и самый последний от alexidino, он пишет, что продержался на этом видео 17 минут, чуть выше
Kosta Derabin пишет: "4 минута... ну давай уже начнём промисы", он видимо до 4 мин. дотерпел... конечно с такой подачей канал в топку.