Эксклюзивный контент на моем Boosty: boosty.to/vladilen
@mgm_smile5 жыл бұрын
Как всегда все четко и по теме. Владилен ты делаешь огромный вклад в развитие ру комьюнити, спасибо тебе =)
@VladilenMinin5 жыл бұрын
Благодарю за отзыв)
@tyortyo4 жыл бұрын
Офигенное объяснение. Здорово, что приведено сравнение с промисами, тогда все понятно становится! Супер
@Vlad-em1bx4 жыл бұрын
Это лучший материал по JS на русскоязычном youtube. Отдельно хотелось бы поблагодарить Вас Владилен за курс по Vue. Он превосходен. Он помог мне довольно быстро вникнуть во Vue. Посоветовал его одному коллеге верстальщику, он также остался им очень доволен. Спасибо Вам огромное! :)))
@АлексадрМироненко-ю8р5 ай бұрын
Владилен, очень хорошо понимается материал благодаря твоим видео! Однозначно лучший контент. Если это возможно рассмотри систематизацию своих видео с дополнительными задачами по материалу. Уверен будет вообще пушечно
@radikovichkz24704 жыл бұрын
Владилен вы не поверите: но во время создания промиса вместо setTimeout(()=>r(),ms) можно просто записать setTimeout(r,ms); r - это есть resolve, и мы передаём ссылку на функцию в качестве колбека
@ИгорьИгорь-с3ю3 жыл бұрын
Люблю такие видосы. Где не льют 50 минут теорию со слайдами на своем птичьем наречии, а за 14 минут на практике показывают как, да чё. Спасибо автору!
@nikdanik5 жыл бұрын
Про веб воркеры было бы супер! Классный видос, лайк
@realfootball3384 жыл бұрын
про sharedArrayBuffer семафоры мютексы и атомарные операции.
@awenn20153 жыл бұрын
Твоя мечта сбылась
@bekzhan3563 жыл бұрын
ещё вебсокеты каеф
@qazxswedc3895 жыл бұрын
огромное спасибо за видео!!! такого понятного и простого объяснения async/await я еще не встречал. очень классные и понятные видео
@VladilenMinin5 жыл бұрын
Благодарю за отзыв, рад такому результату)
@nicksimmons47224 жыл бұрын
в прошлом году доходило долго, а в этом намного легче и уже сразу понятно)) очень информативные и понятные уроки) спасибо за труды
@Wraith24015 жыл бұрын
на мой взгляд самое доступное объяснение работы async/await в рунете. лайк/подписка
@wininf03 ай бұрын
о арыстан ассалаумагалейкум братан
@mikurrey4165 жыл бұрын
Большущее спасибо :) Без таких знаний асинхронность не хило выносит мозг)))
@Vlad-jp3co2 жыл бұрын
Твои уроки раскрывают суть каждой концепции. Ты описываешь проблему и механизм в языке, который эту проблему решает. Информация так усваивается намного лучше. В других уроках описывают некоторые факты о части языка и не говорят как это использовать и новичок не понимает как он это может применить. Спасибо большое за труд
@unknownWakeborder4 жыл бұрын
Я в свое время так намучался с получение данных с апи.... а тут было все так доступно. Очень полезно, спасибо тебе за контент!
@MrFeedme865 жыл бұрын
Владилен топ! Если у тебя будет своя школа, я пойду туда учиться :D
@АнтонПетренко-ш4ш5 жыл бұрын
Очень круто обьясняешь. Коротко и по делу!)) Pozdrawiam z Polski!!!
@nivaech4 жыл бұрын
Владилен, спасибо. Благодаря твоему каналу время карантина вследствие чертового коронавируса проходит как нельзя плодотворно.
@hugor7785 ай бұрын
Чудесно объяснил, благодарочка 🤙
@void6237 Жыл бұрын
"Фетчить некоторые туду", буду теперь это говорить когда меня спрашивают чем я занимаюсь
@Fxgleb5 жыл бұрын
Посмотрев этот ролик я прям осознал что такое асинхронность в жс и в чем разница между then и await (наконец таки)
@VladilenMinin5 жыл бұрын
Ура!)
@АртурБеленченко4 жыл бұрын
Благодарю Вас Владилен! С Вами очень интересно изучать JavaScript!)
@awenn20153 жыл бұрын
Согласен, у других смотрел так и не понял что такое promise, async and await, методы массивов, которые новые map и тд, а тут все сразу стало понятно, и операторы rest и spread туда же, столько полезных вещей которыми я раньше не пользовался, жаль конечно))
@СтаниславСеменов-щ1п3 жыл бұрын
Конструктивно и максимально доходчиво.
@nikishiro82785 жыл бұрын
Спасибо. Про Webpack круто было бы послушать :)
@VladilenMinin5 жыл бұрын
Думаю сделаю быстрый курс по нему)
@yasenclassen3 жыл бұрын
10:15 зачем писать await repsonse.json() если мы уже ждем fetch который запишет результат в переменную response после того как отработает, по идее await для repsonse.json() уже не нужен, или я не прав? @Владилен Минин
@dreawmy29122 жыл бұрын
без .json() ты не получишь тело ответа
@АлексейМохров-е9н2 жыл бұрын
Все-таки Promise и async/await одна из самых сложных тем в JS. Но после таких уроков все становится сразу понятно
@charliebrown55542 жыл бұрын
100%
@ГеннадийГорохов-ц8н2 жыл бұрын
Спасибо за урок очень мощьный курс по JavaScript
@ВладиславЦерковный2 жыл бұрын
Очень подробно разжевал!спасибо огромное за труд
@jimmayhem990 Жыл бұрын
Спасибо большое за отличное объяснение! Не совсем понял момент с .then(() => { return fetch(url) } .then(response => response.json()) fetch() возвращает Promise, then() оборачивает все что в return в новый Promise. Получается, что результат then() - Promise? Как тогда последующий then() вызывает у этого объекта json() ?
@alexandrskuratovich13942 жыл бұрын
А почему стоит await на response.json() , это ведь уже синхронная операция? И можно ли делать return в async методах?
@lidijajezova20252 жыл бұрын
Метод json() возвращает промис.
@27sosite732 жыл бұрын
ska, ты топ, Владилен спасиобо
@artemzhuravlenko99554 жыл бұрын
9:40 я не понял, почему операция получения .json() асинхронна? Мы ведь уже получили объект с сервера строкой выше.
@trueMoRoZ3 жыл бұрын
Такая же история. Выглядит будто создатели перекурили со словами "а давайте напихаем промисы везде!"
@KlinovAS2 жыл бұрын
@@trueMoRoZ Безумие программистов. Мол если IDE нам не помогает понять код, то мы придумаем гениальную свою идею. Сумасшествие и только.
@uracan78725 жыл бұрын
Спасибо за видео! Proxy теперь нужен)
@ВладХобта-ч3и2 жыл бұрын
Очень сложно для меня, плохо запоминается, что нибудь можете посоветовать, как разобраться в этой теме?
@plan-4D2 жыл бұрын
Такая же фигня. Надо писать, писать и писать. ИМХО.
@hyperborean72Ай бұрын
Я правильно вас понимаю (12:15), что если не пользоваться Babel, то код async-await не будет скомпилирован и завершится с ошибкой? И что только Babel транспонирует async-await в колбэки и промисы? Или же в настоящее время это транспонирование происходит уже нативно без стороннего компилятора вроде Babel?
@ОлегБогданов-ф6кАй бұрын
Сейчас уже можно без Babel использовать
@KaelnsLarien9 ай бұрын
Самое главное, что смотря на async await может показаться, что мы только ждём код и всё. НО, как и then, await не блокирует код, а просто откладывает выполнение действующей функции (или call stack если смотреть глобальнее) и продолжит выполнять код дальше Такой код выведет 3 1 4 2. Если уже поставить await верхнего уровня перед вызовом функции, то уже будет 3 1 2 4, так как мы уже дожидаемся этой функции и по сути смысла в асинхронности тогда нет. Код внутри промиса выполняется синхронно, поэтому туда реально нужно ложить то, чего вы хотите подождать типа запроса или того же setTimeout ```JavaScript async function f() { console.log("1") let promise = new Promise((resolve, reject) => { setTimeout(() => resolve("готово!"), 1000) }); let result = await promise; // будет ждать, пока промис не выполнится (*) console.log("2") alert(result); // "готово!" } console.log("3") f(); console.log("4") ```
@StalkerRaftik3 жыл бұрын
Усложнил все до невозможности. Не знаю насчёт остального, но это видео было максимально сложным для новичка
@СтасикЛис2 жыл бұрын
я чувствую себя максимально тупым последние несколько уроков
@phonty292 жыл бұрын
Your teaching is very good. Thank you
@admusmanov30092 жыл бұрын
Обожаю тебя!!!
@mumin_f4 жыл бұрын
Спасибо! Переписывал store для авторизации из урока по Vue CRM, там была готовая библиотека firebase, а мне надо было через API реализовывать. Это видео очень выручило!
@Grigoren_com2 жыл бұрын
спасибо за ролик! очень полезная информация
@yakut545 жыл бұрын
Влад, ты красавчик! Спасибо тебе за науку! Вкладываешь знания в наши бестолковые головы.
@VladilenMinin5 жыл бұрын
Не думаю, что они бестолковые, иначе как бы они нашли мой канал:) Шучу конечно, но за отзыв спасибо
@rigoremplasticsinnovates51433 жыл бұрын
Добрый день, подскажите как дальше работать с data ? Или только внутри промиса и больше никак не вывести data в глобальную зону видимости?
@МИСТЕРУГОЛЁК5 жыл бұрын
Спасибо, но это уже тяжеловато было понять) Усугубилось всё стрелочными функциями
@Briz2313 жыл бұрын
Малюсенький вопрос: я правильно понимаю, что работа всей страницы при наличии такого кода останавливается до того момента, пока не выполнится "виртуальный промис" в виде таймера delay? Или это просто отдельный поток где js выполняет для конкретной функции свой код и затем возвращает его? Ну, то есть, если мы присвоим переменной эту функцию, к ней можно будет обратиться только через 2 секунды, и всё это время скрипт будет недоступен?
@alexgrinberg18883 жыл бұрын
Владилен! Спасибо за ваши уроки. Я часто смотрю ваши уроки на iPhone. Нельзя ли поменять черный бэкграунд на белый, чтобы лучше был виден код? Спасибо!
@ИльяЖабров-и5ч2 жыл бұрын
Подскажите, а зачем второй раз прописывать await? Там же вроде как уже синхронно можно response в json перевести
@spiteman3 жыл бұрын
попробовал заменить в своем микропроекте .then на async/await и получилось даже еще более громоздко, может чуть читается легче, так и мне никто не мешает .then переносить на новую строку.
@dushnilas4 жыл бұрын
Спасибо тебе Владилен за твои видосы.
@ammoney1593 жыл бұрын
Спасибо большое за видосы красавчик!
@MrVertu012 жыл бұрын
Спасибо за урок!
@Nikita-hr6ss5 жыл бұрын
А как быть когда надо делать fetch запросы в цикле? Условно в коде который описал ниже, там где console.log хочу ещё помимо синхронно выполнить fetch запрос. Или вообще можно как-то более правильно чисто async await-ами всё переписать? let count = 0; function printer() { return new Promise(resolve => { setTimeout(()=>{ resolve(console.log('+2 sec...')) }, 2000) }); } (async _ => { console.log('Start') while (count
@greenday51983 жыл бұрын
а про axios есть что-нибудь у тебя? не могу найти
@svdl30004 жыл бұрын
Отличное видео - аккуратное объяснение важных истин простым языком.
@sergion13233 жыл бұрын
Почему в коде нет точек с запятой в конце строк?
@kookaburru5 жыл бұрын
async/await это синтаксический сахар на генератор/промис, где генератор используется для превращения асинхронного кода в синхронный, а промис для выполнения асинхронного кода. То есть тут суть в генераторе, а промис деталь реализации генератора. Промис можно заменить на простой обратный вызов (callback).
@vasil-vasil3 жыл бұрын
Получаю масив ссылок на изображения. Нужно их слепить в одно. Нужно дождаться загрузку каждого склеить (делаю это через canvas). Обьект изображения имеет евент onload. Как мне сделать. Как наложить изображения попорядку когда .onload у промисе не работает!?
@hyperborean72Ай бұрын
ну, и где же здесь асинхронность, если, как вы говорите, "await позволяет НЕ ПЕРЕХОДИТЬ К СЛЕДУЮЩЕЙ СТРОЧКЕ, ПОКА ПРОМИС НА ТЕКУЩЕЙ СТРОЧКЕ НЕ ВЫПОЛНИТСЯ"? Надеюсь, вы понимаете, что описали как раз синхронное (блокирующее) исполнение кода. Асинхронность - она ведь не столько про ожидание результата, сколько про возможность исполнения чего-либо другого во время ожидания результата.
@Скыбыдыщь5 жыл бұрын
Это чертовски полезно
@slaty3312 жыл бұрын
На 6:35 для тех кому трудно понять, как и мне, избавьтесь от setTimeoute. Пишите пустой промис const p = new Promise((resolve)=>resolve()). Сам setTimeoute путает, да до этого он нужен был, чтоб эмулировать ответ от сервера, но тут путает дополнительным синтаксисом. Для понимания порядка выполнения кода, лучше раcставить в разных частях console.log
@azalinka37213 жыл бұрын
спасибо за такое прекрасное обьяснение!!!
@Java-j8r Жыл бұрын
Круто 👍
@АнтонБ-щ8ю3 жыл бұрын
у меня одного ошибка "VM586:10 GET jsonplaceholder.typicode.com/todos net::ERR_FAILED" ?
@gorbulevsv2 жыл бұрын
Спасибо, все очень доступно!!!
@iznu33 жыл бұрын
Спасибо за видео!
@temirkhanamanbaev424 жыл бұрын
Классно объяснил, браво! Спасибо!
@Pr0xytube5 жыл бұрын
Спасибо, урок действительно полезный. Впрочем, как всегда)
@NextgenSocialReptile5 жыл бұрын
Благодарю)
@kuzub4ik4 жыл бұрын
а как это можно применить в цикле? К примеру при прохождении массива циклом, если данные подходят по условиям, нужно выполнить еще две функции которые делают fetch запросы и нужно чтобы была асинхронность, чтобы сперва выполнилась getFirstData() потом getSecondData() и цикл корректно отрабатывал
@ИльяИваник-ф8ф4 жыл бұрын
возникло 2 вопроса по этому видео: 1. await можно только к Promise применять? или к любой функции, результат работы которой может быть задержан (например appendChild тот же)? 2. promise позволяет передать какие-то данные в .catch, а конструкция try {} catch {} finally {}, как я понимаю, такой возможности не имеет?
@grommaks4 жыл бұрын
1) Только к Promise :) await это условно тот же then (then только у промиса есть) 2) в catch приходит error как параметр try {} catch (error) {} Этот параметр error и есть наше значение из reject
@ИльяИваник-ф8ф4 жыл бұрын
@@grommaks спасибо. понял))
@null-lu8it2 жыл бұрын
Любишь ты все темы усложнять
@bearvorkuta3 жыл бұрын
То есть кроме промиса, я не могу получить какие то данные через ретурн при вызове async функции?
@СвятославДворський3 жыл бұрын
Блин, ты крут, человек! Учился по твоему ангуляр курсу, теперь вот доучиваю в ютубе. Супер!
@bodomzor5 жыл бұрын
Красава Вледилен!
@jobbers54515 жыл бұрын
Спасибо. А подскажите как сделать, что бы асинхронная функция ретернила полученные данные, а не возвращала просим.
@Stamp1135 жыл бұрын
Функция с меткой async всегда будет возвращать промис.
@Stamp1135 жыл бұрын
Вы можете, так сказать, распаковывать возвращаемый промис в другой функции через await. Проблема в том, что новая функция тоже должна быть async.
@onlynowmotivation3 жыл бұрын
Спасибо большое! От души!!!
@web29054 жыл бұрын
Спасибо за видео :)
@МаМмм-ь9х3 жыл бұрын
ToJson тоже возвращает promise?
@dossh4294 жыл бұрын
Доброго времени суток Владилен! Если у вас будет время, подскажите пожалуйста что такое нативная функция? Также нативность ?
@VladilenMinin4 жыл бұрын
Встроенная в сам язык
@Давид-п8и5 жыл бұрын
Супер видео! Спасибо вам! Плейлист тоже классный!
@VladilenMinin5 жыл бұрын
Благодарю за отзыв)
@hmelii5 жыл бұрын
Если указать недействительную ссылку, то в catch выводится пустой объект. Как понять, какая ошибка пришла от сервера?
@АлександрШейка-ц5ь4 жыл бұрын
Если ссылка не действительна, то и сервера никакого нет. Просто некому отвечать на запрос. Смотрите инфу в заголовках.
@КостяКреон4 жыл бұрын
...можно вопрос, почему ты всегда объявляешь переменные тип CONST, есть же ещё и LET, VAR. Заранее.... Благодарю за ответ!
@VladilenMinin4 жыл бұрын
Best practice
@talas123415 жыл бұрын
всегда так - смотришь, всё понятно, начинаешь делать, ну нихуя не понятно‼ пока собственными ручками не сделаешь, хрен поймешь‼
@ХалидИбнВалид-т1э4 жыл бұрын
Это всегда так ! )
@konstantinsoluyanov85054 жыл бұрын
сначала смотришь, потом делаешь, потом еще раз смотришь, благо youtube иногда подкидывает уже просмотренные ролики
@Lynatik0014 жыл бұрын
я помню когда делал все через then только, понимал что это крутая штука что позволяет дождатся асинхронной функции, словить результат и далее его обрабатывать. ну как асинк и авейт. про промисы вобще не шарил думал промис = асинхронному методу. типа так называют в яваскрипте просто так ХД)
@yaroslavzef72674 жыл бұрын
И это он еще не самый понятливый объяснятель)
@ricojohn82493 жыл бұрын
@@yaroslavzef7267 а кто самый понятливый?
@trueMoRoZ3 жыл бұрын
Не понятно, зачем response.json() возвращает promise. Какие там задержки могут быть, ведь это всего лишь форматирование ответа? Да и сам fetch уже возвращает promise. Promise в promise и promis'ом погоняет)
@РоманБережной-щ4ы3 жыл бұрын
подскажите не пойму почему не работает такое function buyIngridiens(){ return setTimeout(() => { console.log('купили продукты'); }, 4000) } function goingIngridients() { return setTimeout(() => { console.log(' принесли продукты домой '); }, 1000); async function vsePoPoryadku() { await buyIngridiens(); await goingIngridients(); } vsePoPoryadku() всегда порядок вывода зависит от setTimeout а не async/await
@parlaitaliano Жыл бұрын
Я что-то поняла, неужели, офигеть! но боюсь что окажется, что рано радуюсь, что все-таки не поняла, потому что я не могу поверить, что я наконец это поняла. Спасибо Вам
@lumeaceaiuluisrl63434 жыл бұрын
Владилен, спасибо за урок!
@Скыбыдыщь5 жыл бұрын
Теперь уж точно прям очень нужен прокси
@АлександрМелянюк-ц9ю5 жыл бұрын
Спасибо, Добрый Человек!!!
@vladislavivanov41245 жыл бұрын
Спасибо! Лучший)
@АртемАртеменко-й8б5 жыл бұрын
по тайп скрипту и ангуляру 8 чет будет?
@VladilenMinin5 жыл бұрын
Скоро будет много ангуляра)
@VladilenMinin5 жыл бұрын
@LuckyGamerTV Пока я фокусируюсь на frontend разработке и про базы в ближайшее время не планировал рассказывать Но ближе к осени вернуть и освещу эту тему
@Abdul-hy4cy2 жыл бұрын
Как ты круто объясняешь! Последовательно, по уровню сложности.
@squabble33325 жыл бұрын
я так понимаю, использование промисов или асинков является выбором чисто самого писателя? есть ли какие-то кардинальные различия, которые вынуждают выбрать тот или иной вариант ? Имхо вариант с асинками мне нравится больше, его использование не выстраивает бесконечную пирамиду и максимально понятно, что и где происходит. Или это и есть главный плюс?)
@VladilenMinin5 жыл бұрын
Это просто синтаксис для удобной работы
@squabble33325 жыл бұрын
Благодарю, значит все правильно)
@yuramaster43542 жыл бұрын
thank you again )
@jamilibrahimli19011 ай бұрын
А зачем нам await delay(2000) внутри async функции ?
@inzoddex83124 жыл бұрын
В каких случая все это можно применять? В авторизации например или где то еще?
@trueMoRoZ3 жыл бұрын
Везде где возможны задержки и где можно распараллелить выполнение кода
@damirkacineman5384 жыл бұрын
а нельзя ли всместо () => r() во второй строке писать просто r? Спрашиваю потому что заметил, что ты в нескольких уроках пишешь в подобных случаях стрелочку, спасибо за ответ)
@АлександрШейка-ц5ь4 жыл бұрын
если вы напишете просто r - то получите указатель на функцию, если вы напишите r() - то заставите выполниться функцию и получите результат ее работы.
@dartoranges4 жыл бұрын
Владилен ты не представляешь как ты мне помог этим уроком!!!!
@DanReksar5 жыл бұрын
Спасибо) т.е. предпочтительнее пользоваться async / await, чем промисами напрямую. Или есть ситуации, когда async / await не получится использовать?
@VladilenMinin5 жыл бұрын
Я бы почти всегда их использовал, редко когда нужны именно промисы Но стоит помнить, что еще не все бразуеры нативно поддерживают подобный синтаксис и лучше пропускать его через babel
@Нормчё-е5у4 жыл бұрын
Спасибо большое за видео) Очень доступно и понятно!!! Владилен, вы не могли бы снять видео про pwa во vue-cli3? Или оно уже есть, а я не нашла на канале?
@imbaquad5 жыл бұрын
Круто ! Спасибо)!
@spiteman3 жыл бұрын
Пишу из 2021, вроде посмотрел внимательно урок по Promise и первый пример функции меня "убил наповал". Полез разбираться, что чего и как и в итоге, что получилось, для тех кто так же не понял как я: const delay = (ms) => new Promise((r) => setTimeout(r, ms)); Во первых это короче и даже понятнее. Итак что у нас происходит, пишу как все еще ученик: присваиваем переменной ссылку на безымянную стрелочную функцию с параметром ms она в свою очередь возвращает Promise, который возвращает по исполнении функцию setTimeout через ms миллисекунд.