4:16 - порядок такой не потому что запрос к серверу дольше, а потому что fetch возвращает промис, а промисы исполняются после основного стека вызова, так как сидят в microtask queue.
@ivomeadows3 жыл бұрын
топовый коммент. об этом надо было рассказать
@faizulla58383 жыл бұрын
те если делать async/await без fetch то порядок будет любой? Спасибо
@ivomeadows3 жыл бұрын
@@faizulla5838 функция async всегда возвращает промис
@АндрейИванов-ц3к2л2 жыл бұрын
Интересно, а где в данном случае основной стек вызова?
@oleksandrs74072 жыл бұрын
Крайне важный коммент, в топ.
@АлександрГригорян-п5ш3 жыл бұрын
Долгих лет здоровой жизни вам!) Всегда радуйте нас вашим понятным контентом!
@omnomnom13232 жыл бұрын
ну наконец-то!!!! хоть где-то реальный кейс с запросом на сервак без этих сеттаймаутов! Спасибо)
@olexanderChorny3 жыл бұрын
Через какие мучения пришлось пройти, что бы это понять! У вас максимально доступно, большое, человеческое спасибо)
@ДанилДмитриев-я5м2 жыл бұрын
да хватит это легко
@grach19933 жыл бұрын
Было понятно, но всё-равно в уме витали какие-то сомнения. Благодаря такой подаче они полностью развеялись. Спасибо
@pavel79303 жыл бұрын
Это гениально! Большое спасибо ! Самое понятное объяснение которое видел когда либо!
@OlyaPoy3 жыл бұрын
Огромное спасибо. Благодаря вашему обьяснениям смогла ответить на вопросы на собеседовани и меня взяли на стажировку!
@braingriffin946 Жыл бұрын
Как дела спустя год?
@anti_middle_ages Жыл бұрын
@@braingriffin946 Видимо, плохо
@ФорменШульц9 ай бұрын
да как у вас дела?
@avs19789 ай бұрын
Посмотрела видос, взяли на работу, за это время никто не оставлял комментарии под видео и она написала первый комментарий. Автор, самому не смешно?
@ФорменШульц9 ай бұрын
@@avs1978в чем прикол?
@ТатьянаХоружая-ц1н2 жыл бұрын
Кучу видео посмотрела и пришла к итого, что ваши видео самые доступные, а также результативные! Огромное вам спасибо!
@AnonAristotel3 жыл бұрын
Хммм... - А давайте чтобы у нас код не был последовательным придумаем асинхронные вызовы. - Ой, а у нас же нарушается последовательность выполнения кода и он становится асинхронным. - А давайте мы придумаем ожидание выполнения асинхронного кода, чтобы выполнение его было последовательным и ожидаемым.
@dimape.41803 жыл бұрын
хмм.. а давай при каждом запросе на сервер, если там задержка, будем ковырять в носу и ждать ответа и не будем придумывать асинхронные вызовы
@AnonAristotel3 жыл бұрын
@@dimape.4180 Нет, давайте делать это, покуда будем ожидать (await) выполнение асинхронных вызовов.
@dimape.41803 жыл бұрын
Нет давайте поделаем что-нибудь другое, это же асинхронный вопрос.
@AnonAristotel3 жыл бұрын
@@dimape.4180 В том то и дело, что с await это выглядит как обычный синхронный код. Это не go рутины и не фоновые задания 1С. Кстати почти те же йайтса в 1С, только там сначала реализовали через широковещание - ОбработкаОповещения, а потом через Acync (Асинх) Await (Ждать). И в такой конструкции результат выглядит как обычный синхронный код. Только выполняется раз в 10 медленнее. А знаете почему? Потому что 1С тоже имеет (какое слово то гадкое) web клиент. И проблема в том, что браузер ругается на синхронные вызовы и не даёт их выполнять. То есть средство просмотра (браузер) де-факто устанавливает правила для языков программирования и фреймворков.
@dimape.41803 жыл бұрын
Если их придумали значит в них была потребность для опред. ситуаций.
@НиколайСтепанов-ю3м Жыл бұрын
Самый лучший канал по JavaScript, постараюсь и платный ваш курс пройти!
@evgeniy32243 жыл бұрын
У вас всегда уроки понятно о сложном. Большое спасибо, было очень полезно. Размял свои мозги!))
@Kras99free2 жыл бұрын
Лучшее объяснение асинхронности из всего что есть на русскоязычных ресурсах!
@kenanhaciyev37592 жыл бұрын
это лучшее объяснение async await что может быть вообще!!!!!!
@katemos45842 жыл бұрын
Александр Лущенко лучший блогер, коучер и программист. Спасибо огромное!!!!!!!!!!!!!!
@adinaijamangulova25963 жыл бұрын
один из лучших каналов по веб-разработке! ВСе понятно и ясно!
@екатеринапанасюк-и6ч2 жыл бұрын
Вы отличный учитель!Спасибо Вам большое!
@МилаяЛюбимая-ч3к2 жыл бұрын
Спасибо за объяснение, единственный кто легко донес смысл async await)))
@venzeldv Жыл бұрын
Лучшее описание, что мне встретилось.
@_l.e.n.y_49562 жыл бұрын
Ви найкращий вчитель IT
@RomanKaras773 жыл бұрын
Александр, всегда с удовольствием смотрю ваши видео, хоть вроде и не новичок ). Не примите за занудство, но попробуйте писать в vscod-e не console.log(), а просто log и клавиша Tab. И перемещать строки или выделенные фрагменты кода, когда вы меняли, например местами функции f1() и f2(), можно Ctrl + Shift + стрелки вверх/вниз )), а не копипастом. С уважением. Спасибо за ваш труд, жму руку. )
@untiweuntiwe74153 жыл бұрын
Про log + tab тоже не знал. Только log + enter. Спасибо)
@RomanKaras773 жыл бұрын
@@untiweuntiwe7415 я кстати, далеко не сразу в работе с вс-кодом узнал про передвижение строк и очень был обрадован этой фичей )
@АлександрСмирнов-ы5т7ч3 жыл бұрын
Спасибо , очень полезно!! понятно все очень!! теперь не много перепишу свой телеграмм-бот.
@user-lilya Жыл бұрын
Спасибо, очень полезное видео! наконец-то поняла тему.
@alexfargo63362 жыл бұрын
Большое спасибо, Сань, твоё видео помогло мне выйти из ступора и решить мою проблему)
@ИгорьКосач-ф8л Жыл бұрын
Это очень грамотно разжевано. После 5 -6 видосов на эту тему, этот самый лаконичный и понятный.
@oleksandrkotovskyi420312 күн бұрын
как всегда шикарно рассказано на пальцах
@DmytroZaika-hn7wx8 ай бұрын
Спасибо большое, это четвертое видео которое я смотрю на эту тему и только сейчас стало понятно
@TONY_BERG_MINSK4 ай бұрын
Чертов Гений❤❤❤🎉
@тоталіспайс3 жыл бұрын
Шикарно, как раз на главе по асинхронности в Eloquent JavaScript и понимаю, что это видео хорошенько мне поможет) Спасибо
@tihunvolkov9288 Жыл бұрын
Наконец-то, без таймеров, на нормальном реальном примере, ободряю.
@alla6361 Жыл бұрын
Спасибо! Стало понятнее!
@ОлегСавл2 жыл бұрын
Спасибо огромное, у Вас очень хороший подход и объяснение технологии. Успехов!
@andreybalatsan93362 жыл бұрын
Спасибо огромное, посмотрел уже 3 видео и на вашем все встало на свои места
@sedovolosyi2 жыл бұрын
Суть понятна, спасибо. Функция go имеет лишний async, ну это мелочи
@sergeyplotnikov50313 жыл бұрын
Спасибо за такое простое и понятное объяснение
@gom-jabbar11 ай бұрын
Благодарю
@yuriyovdeyev6853 жыл бұрын
Толково! Спасибо за пример, очень наглядно и понятно.
@АнтонНевероятный Жыл бұрын
Действительно полезное видео, объясняющее работу асинхронных функций
@КириллДубасов-ф7б2 жыл бұрын
Лучшее объяснение асинхронности, огромное вам спасибо!
@asgard14282 жыл бұрын
Все равно до конца не понял. Но это лучшее объяснение что я видел. Спасибо!
@ИванНазаров-р8л3 жыл бұрын
Александр не лучше ли для эмуляции сервера использовать jsonplaceholder ? мне кажется будет нагляднее и интереснее
@Olena_salii2 жыл бұрын
Очень хорошее обьяснение для новичков! доступно! благодарю!
@АлександрБуров-п1м2 жыл бұрын
Спасибо, только после этого видео наконец понял что это такое!)
@ПолинаКызылова9 ай бұрын
лучшее видео эвер, спасибо большое!!!
@Olegio_Y2 жыл бұрын
Спасибо что делаете упор на простоту обьяснения
@valerakuznetsov2 жыл бұрын
спасибо громадное Вы один кто так доходчиво рассказал
@mike-aaa2 жыл бұрын
Ради этого урока я написал свой сервер! 😎
@SputnikovoeTV3 жыл бұрын
Не совсем пойму разницу с Промисами( фетч вернет промис, и зеном обработаем по цепочке и по сути это тоже самое?
@mediavova4073 жыл бұрын
Огромное спасибо!!! Всё доходчиво на 150%, закрыли мои многие вопросы
@araslanrus3 жыл бұрын
Наконец то без циклов и таймаутов
@ИльяЗахаров-е3э Жыл бұрын
Спасибо) Очень подробно объяснили)
@valentyn9963 жыл бұрын
Отличное объяснение, спасибо за старания!
@Lunar66 Жыл бұрын
не ожидал вас тут увидеть:)
@valentyn996 Жыл бұрын
@@Lunar66 😎😎
@niteilcaesgo2907 Жыл бұрын
Большое спасибо за видео! очень понятное объяснение!
@karenmelikyan3772 жыл бұрын
Гениальный язык. И без async функция асинхронна и с async асинхронна. Главное, надо было все сделать работающим асинхронно, а потом выдумывать кастыли как все это синхронизировать. Просто гениально.
@maratkamaletdinov90172 жыл бұрын
Единственное, что понял, что асинхронность нужна, чтобы функции работали синхронно. Потому что без асинхронности они работают...асинхронно.
@_Iokanaan_Marusidze_3 жыл бұрын
Спасибо, Александр ! Вы один из тех немногих кто расказывает о сложном простыми словами и способствует развитию хода мысле в ученике. По моему разумению именно таким и должен быть настоящий УЧИТЕЛЬ. ------------------------- Посдскажите пожалуйста, какие инструменты нужно задействовать в JS чтобы добиться четкого выполнениея таймингов ? Мне нужно чтобы функции вызывались с четкой переодичностью в 1сек и 500мс и весьма желайтельно чтобы этот таймер имел общее основание с Date(), поскольку именно оттуда я беру текущее время.
@_Iokanaan_Marusidze_3 жыл бұрын
@@enjoymtx , не получается его отследить потому что тайминги Date() и Setinterval просто не совпадают. Может в системе Можна как то выйти на единый источник тактирования ? Здесь нужно понимать тонкости работы движка js.
@_Iokanaan_Marusidze_3 жыл бұрын
@@enjoymtx , к примеру. Через setinterval я вызываю ф-цию каждую секунду, в начале этой ф-ции я проверяю равны ли мс обьекта Data() нулю. И вот здесь и трабла, они никогда не равны нулю. Как тогда я спрашиваю выдержать точные интервалы ?
@ПращурАмбатьелло3 жыл бұрын
это делается через рекурсивный setTimeout
@ИванВерушкин-в7ю2 жыл бұрын
А как правильно перебрать циклом этот res? То есть, допустим, запрос возвращает некий массив данных, а мне из этого массива нужно что-то конкретное выводить в консоль или на экран.
@tazorprod.934 Жыл бұрын
Очень доступно объяснили такую сложную тему, спасибо
@annajegorova61202 жыл бұрын
Спасибо за видео, простой и понятный пример!
@СергейКузнецов-т4р3 жыл бұрын
Очень благодарен. Лущенко the best ))))
@knuckless__2 жыл бұрын
дуже доступно та легко дякую)
@МишаАстахов-ю2д3 жыл бұрын
Наконец то, классно обьяснил ! , уникально, супер, понятно !
@andrzeyshliaha53023 жыл бұрын
Здорово, все по делу без воды, спасибо
@andrzeyshliaha53023 жыл бұрын
Правильно я понял, если например потом с данными нужно делать определенную логику а не просто текст, например в функции f3 то мы там просто ее и пишем ?
@kapwas2 жыл бұрын
Что будет, если асинк авэйт оставить только у обертки, а сами ф1-ф3 обычными обозвать без авэйтов внутри?
@СултанТемирбай-и8я3 жыл бұрын
и человек и видео прекрасны спасибо большое
@aleks66072 жыл бұрын
Спасибо)) очень помог ваш видос))
@АлексейЛоскутников-ю4р3 жыл бұрын
Хороший пример, спасибо. Еще можно разобрать на вашем примере обработку ошибок при асинхронных запросах. На простых примерах, как правило это упускают, а на продакшен без этого никак.
@sega21rus983 жыл бұрын
просто в async функции используешь try-catch и все
@donatelodonatelo3832 жыл бұрын
Фактически я могу и не взять в async каждую функцию по одельности? Ведь возможно каждую синк функцию сделать асинк с добавлением awair в начале?
@bunnybugs66233 жыл бұрын
Все супер, но Все же нужно пересмотреть, очень интерестно работа над ошибками
@xelth Жыл бұрын
при авейт ждет только эта функция или оно тормозит функции работающие в паралели?
@МастерЙода-я4ю3 жыл бұрын
Спасибо, помог разобрасять с промисами и эсин эвей.
@maksymkyryliuk4922 жыл бұрын
Good work. Awesome explanation!👍
@georgepetrosyan45893 жыл бұрын
Александр,как всегда респект. Наконец-то, кто-то понятно и на пальцах объяснил асинк-эвеит. А с помощью промисов, такого же результата можно добиться, посмотрев вашу лекцию про промисы?
@sergeyilyin7563 жыл бұрын
Это определено одно из лучших объяснений, а самое главное без таймаутов и интервалов со стрелочной функцией, который только запутают новичка. Спасибо, подписываюсь!
@digitalturkistan18572 жыл бұрын
Такие подачи для того что бы показать какой он крутой программист типа владилена
@gordonfram2 жыл бұрын
@@digitalturkistan1857 нет. Данный автор никак не хвастается и не "намекает" на то, какой он классный программист
@sergey66613132 жыл бұрын
А если я хочу дождаться выполнения первых двух функции, и только потом выполнять третью. Как в таком случае написать код таим образом чтобы вторая функция не ждала при этом первую?
@Das.Kleine.Krokodil3 жыл бұрын
0:23 так вы рассказываете про асихроннные функции или про то как асинхронные сделать синхронными?
@КостянтинПавлов-ж7ж2 жыл бұрын
Просто показали но есть вопрос. Где у нас здесь после async/await осталось асинхронное выполнение кода? То есть как реально будет отрабатывать код? Ждать все await? Тогда это может быть долго.
@yaroslavzef72673 жыл бұрын
Круто. Не знал за такую тему! Спасибо
@dreadwood3 жыл бұрын
Доступное и понятное объяснение, спасибо. Интересно посмотреть код сервера. Может есть пример где-нибудь на github?
@HeorhiiHryhorian Жыл бұрын
Очень хорошее видео! Спасибо за труд!
@pypypy42282 жыл бұрын
Наконец-то стало понятно, что async await фактически делают из асинхронного кода подобие синхронного.
@aleksey2202803 жыл бұрын
Очень доступная подача. Спасибо!
@faizulla58383 жыл бұрын
Извините , Алексей а если порядок не важен, главное чтобы не ждало и работало - async/await применяем или старый вариант? если да то как?
@АлександрЛавренюк-о9ь2 жыл бұрын
Подскажите, как с помощью async/await дождаться появления DOM-элемента и выполнить с ним действие? За урок спасибо!
@Alias_s2 жыл бұрын
document.addEventListener("DOMContentLoaded", function(event) { //do work });
@DAROM-TK3 жыл бұрын
Спасибо за видео, вроде все понятно и очевидно, но полнз читать на официальный сайт про асинхронность, и снова запутался. В официальном примере код выполняется последовательно, там запускают рисование миллиона шариков, и пока они не нарисуются, следующий за ним алертт не выполняется, баузер зависает. В Вашем же примере как раз этого нет, выводы в консоль выполняются именно , что быстрее то и выводится. Как так получается, в ситуации с шариками все идёт последовательно, а при выводе в консоль нет? Вот пример оттуда function expensiveOperation() { for(let i = 0; i < 1000000; i++) { ctx.fillStyle = 'rgba(0,0,255, 0.2)'; ctx.beginPath(); ctx.arc(random(0, canvas.width), random(0, canvas.height), 10, degToRad(0), degToRad(360), false); ctx.fill() } } fillBtn.addEventListener('click', expensiveOperation); alertBtn.addEventListener('click', () => alert('You clicked me!') );
@GGSoft20092 жыл бұрын
Ну это и лекция. Спасибо больщое
@АрсенМахмудов-н2д3 жыл бұрын
С меня подписка! Вот так нужно объяснять чайникам))
@GTar19983 жыл бұрын
Все просто и понятно. Спасибо
@dilmurodshernodirov59843 жыл бұрын
Спасибо за видос ждём по больше ещё
@sekirogenshiro22103 жыл бұрын
Спасибо! Наконец то все понятно стало!
@dinarsharipov50223 жыл бұрын
Спасибо.наконец понял я как правильно прописывать асинк эвэйт, единственное, наверное можно было бы внутри каждой функции не прописывать async await? или обязательно дважды прописывать??
@alyu63512 жыл бұрын
А мы разве перед res.text() не должны поставить await? return await res.text()
@RinatWOT3 жыл бұрын
Спасибо большое! Очень круто объяснил
@extreme_pw3 жыл бұрын
Будет ли правильно написать fetch запрос после await внутри функции go, чтобы не плодить избыточные функции (f1,f2,f3) ?
@MrBioneto3 жыл бұрын
Офигенно объяснили!!! Спасибо!
@ruslan40903 жыл бұрын
Давно хотел спросить, допускается ли следующее написание кода, или это плохая практика? function f1(arg) { // какой-то код f2(arg); } function f2(arg) { // какой-то код f3(arg); } function f3(arg) { // ещё какой-то код } f1(arg);
@a8902872400710 ай бұрын
спасибо, теперь понял
@alexforos54253 жыл бұрын
Спасибо большое! 👍
@nasibasgarov96443 жыл бұрын
Правильно, ли я понимаю, что это работает только если возвращается промис? Т.е. получается, что фетч, всякие аксиос возвращают промис?
@Synchro133 жыл бұрын
Огромное спасибо! просто и понятно
@ForseNight Жыл бұрын
Лучший айтиевангелист
@itgid Жыл бұрын
Не. Максимум айтиатеист. Я за то что айти не является чем-то недостижимым.