Просто o async, await. Без циклов и таймеров. JavaScript

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 พ.ย. 2024

ความคิดเห็น • 221

  • @ildarjakparov4887
    @ildarjakparov4887 3 ปีที่แล้ว +95

    4:16 - порядок такой не потому что запрос к серверу дольше, а потому что fetch возвращает промис, а промисы исполняются после основного стека вызова, так как сидят в microtask queue.

    • @ivomeadows
      @ivomeadows 3 ปีที่แล้ว +5

      топовый коммент. об этом надо было рассказать

    • @faizulla5838
      @faizulla5838 3 ปีที่แล้ว

      те если делать async/await без fetch то порядок будет любой?
      Спасибо

    • @ivomeadows
      @ivomeadows 3 ปีที่แล้ว +1

      @@faizulla5838 функция async всегда возвращает промис

    • @АндрейИванов-ц3к2л
      @АндрейИванов-ц3к2л 2 ปีที่แล้ว

      Интересно, а где в данном случае основной стек вызова?

    • @oleksandrs7407
      @oleksandrs7407 2 ปีที่แล้ว

      Крайне важный коммент, в топ.

  • @АлександрГригорян-п5ш
    @АлександрГригорян-п5ш 3 ปีที่แล้ว +73

    Долгих лет здоровой жизни вам!) Всегда радуйте нас вашим понятным контентом!

  • @omnomnom1323
    @omnomnom1323 2 ปีที่แล้ว +3

    ну наконец-то!!!! хоть где-то реальный кейс с запросом на сервак без этих сеттаймаутов! Спасибо)

  • @olexanderChorny
    @olexanderChorny 3 ปีที่แล้ว +20

    Через какие мучения пришлось пройти, что бы это понять! У вас максимально доступно, большое, человеческое спасибо)

  • @grach1993
    @grach1993 3 ปีที่แล้ว +10

    Было понятно, но всё-равно в уме витали какие-то сомнения. Благодаря такой подаче они полностью развеялись. Спасибо

  • @pavel7930
    @pavel7930 3 ปีที่แล้ว +36

    Это гениально! Большое спасибо ! Самое понятное объяснение которое видел когда либо!

  • @ТатьянаХоружая-ц1н
    @ТатьянаХоружая-ц1н 2 ปีที่แล้ว +1

    Кучу видео посмотрела и пришла к итого, что ваши видео самые доступные, а также результативные! Огромное вам спасибо!

  • @OlyaPoy
    @OlyaPoy 3 ปีที่แล้ว +27

    Огромное спасибо. Благодаря вашему обьяснениям смогла ответить на вопросы на собеседовани и меня взяли на стажировку!

    • @braingriffin946
      @braingriffin946 ปีที่แล้ว

      Как дела спустя год?

    • @anti_middle_ages
      @anti_middle_ages ปีที่แล้ว

      @@braingriffin946
      Видимо, плохо

    • @ФорменШульц
      @ФорменШульц 7 หลายเดือนก่อน

      да как у вас дела?

    • @avs1978
      @avs1978 7 หลายเดือนก่อน

      Посмотрела видос, взяли на работу, за это время никто не оставлял комментарии под видео и она написала первый комментарий. Автор, самому не смешно?

    • @ФорменШульц
      @ФорменШульц 7 หลายเดือนก่อน

      ​@@avs1978в чем прикол?

  • @НиколайСтепанов-ю3м
    @НиколайСтепанов-ю3м ปีที่แล้ว

    Самый лучший канал по JavaScript, постараюсь и платный ваш курс пройти!

  • @AnonAristotel
    @AnonAristotel 3 ปีที่แล้ว +68

    Хммм...
    - А давайте чтобы у нас код не был последовательным придумаем асинхронные вызовы.
    - Ой, а у нас же нарушается последовательность выполнения кода и он становится асинхронным.
    - А давайте мы придумаем ожидание выполнения асинхронного кода, чтобы выполнение его было последовательным и ожидаемым.

    • @dimape.4180
      @dimape.4180 3 ปีที่แล้ว +7

      хмм.. а давай при каждом запросе на сервер, если там задержка, будем ковырять в носу и ждать ответа и не будем придумывать асинхронные вызовы

    • @AnonAristotel
      @AnonAristotel 3 ปีที่แล้ว +4

      @@dimape.4180 Нет, давайте делать это, покуда будем ожидать (await) выполнение асинхронных вызовов.

    • @dimape.4180
      @dimape.4180 3 ปีที่แล้ว +1

      Нет давайте поделаем что-нибудь другое, это же асинхронный вопрос.

    • @AnonAristotel
      @AnonAristotel 3 ปีที่แล้ว +1

      @@dimape.4180 В том то и дело, что с await это выглядит как обычный синхронный код. Это не go рутины и не фоновые задания 1С. Кстати почти те же йайтса в 1С, только там сначала реализовали через широковещание - ОбработкаОповещения, а потом через Acync (Асинх) Await (Ждать). И в такой конструкции результат выглядит как обычный синхронный код. Только выполняется раз в 10 медленнее. А знаете почему? Потому что 1С тоже имеет (какое слово то гадкое) web клиент. И проблема в том, что браузер ругается на синхронные вызовы и не даёт их выполнять. То есть средство просмотра (браузер) де-факто устанавливает правила для языков программирования и фреймворков.

    • @dimape.4180
      @dimape.4180 3 ปีที่แล้ว +2

      Если их придумали значит в них была потребность для опред. ситуаций.

  • @evgeniy3224
    @evgeniy3224 3 ปีที่แล้ว +5

    У вас всегда уроки понятно о сложном. Большое спасибо, было очень полезно. Размял свои мозги!))

  • @Kras99free
    @Kras99free ปีที่แล้ว

    Лучшее объяснение асинхронности из всего что есть на русскоязычных ресурсах!

  • @andreybalatsan9336
    @andreybalatsan9336 2 ปีที่แล้ว +1

    Спасибо огромное, посмотрел уже 3 видео и на вашем все встало на свои места

  • @user-lilya
    @user-lilya ปีที่แล้ว +1

    Спасибо, очень полезное видео! наконец-то поняла тему.

  • @alexfargo6336
    @alexfargo6336 2 ปีที่แล้ว +1

    Большое спасибо, Сань, твоё видео помогло мне выйти из ступора и решить мою проблему)

  • @DmytroZaika-hn7wx
    @DmytroZaika-hn7wx 6 หลายเดือนก่อน

    Спасибо большое, это четвертое видео которое я смотрю на эту тему и только сейчас стало понятно

  • @kenanhaciyev3759
    @kenanhaciyev3759 2 ปีที่แล้ว

    это лучшее объяснение async await что может быть вообще!!!!!!

  • @adinaijamangulova2596
    @adinaijamangulova2596 3 ปีที่แล้ว

    один из лучших каналов по веб-разработке! ВСе понятно и ясно!

  • @ИгорьКосач-ф8л
    @ИгорьКосач-ф8л ปีที่แล้ว

    Это очень грамотно разжевано. После 5 -6 видосов на эту тему, этот самый лаконичный и понятный.

  • @katemos4584
    @katemos4584 2 ปีที่แล้ว

    Александр Лущенко лучший блогер, коучер и программист. Спасибо огромное!!!!!!!!!!!!!!

  • @АлександрСмирнов-ы5т7ч
    @АлександрСмирнов-ы5т7ч 3 ปีที่แล้ว +2

    Спасибо , очень полезно!! понятно все очень!! теперь не много перепишу свой телеграмм-бот.

  • @venzeldv
    @venzeldv ปีที่แล้ว

    Лучшее описание, что мне встретилось.

  • @екатеринапанасюк-и6ч
    @екатеринапанасюк-и6ч ปีที่แล้ว +2

    Вы отличный учитель!Спасибо Вам большое!

  • @МилаяЛюбимая-ч3к
    @МилаяЛюбимая-ч3к ปีที่แล้ว

    Спасибо за объяснение, единственный кто легко донес смысл async await)))

  • @тоталіспайс
    @тоталіспайс 3 ปีที่แล้ว

    Шикарно, как раз на главе по асинхронности в Eloquent JavaScript и понимаю, что это видео хорошенько мне поможет) Спасибо

  • @ОлегСавл
    @ОлегСавл 2 ปีที่แล้ว

    Спасибо огромное, у Вас очень хороший подход и объяснение технологии. Успехов!

  • @АнтонНевероятный
    @АнтонНевероятный ปีที่แล้ว

    Действительно полезное видео, объясняющее работу асинхронных функций

  • @sergeyplotnikov5031
    @sergeyplotnikov5031 3 ปีที่แล้ว +3

    Спасибо за такое простое и понятное объяснение

  • @RomanKaras77
    @RomanKaras77 3 ปีที่แล้ว +1

    Александр, всегда с удовольствием смотрю ваши видео, хоть вроде и не новичок ). Не примите за занудство, но попробуйте писать в vscod-e не console.log(), а просто log и клавиша Tab. И перемещать строки или выделенные фрагменты кода, когда вы меняли, например местами функции f1() и f2(), можно Ctrl + Shift + стрелки вверх/вниз )), а не копипастом. С уважением. Спасибо за ваш труд, жму руку. )

    • @untiweuntiwe7415
      @untiweuntiwe7415 3 ปีที่แล้ว +1

      Про log + tab тоже не знал. Только log + enter. Спасибо)

    • @RomanKaras77
      @RomanKaras77 3 ปีที่แล้ว +1

      @@untiweuntiwe7415 я кстати, далеко не сразу в работе с вс-кодом узнал про передвижение строк и очень был обрадован этой фичей )

  • @АлександрБуров-п1м
    @АлександрБуров-п1м 2 ปีที่แล้ว

    Спасибо, только после этого видео наконец понял что это такое!)

  • @yuriyovdeyev685
    @yuriyovdeyev685 3 ปีที่แล้ว +1

    Толково! Спасибо за пример, очень наглядно и понятно.

  • @КириллДубасов-ф7б
    @КириллДубасов-ф7б 2 ปีที่แล้ว

    Лучшее объяснение асинхронности, огромное вам спасибо!

  • @mediavova407
    @mediavova407 3 ปีที่แล้ว

    Огромное спасибо!!! Всё доходчиво на 150%, закрыли мои многие вопросы

  • @niteilcaesgo2907
    @niteilcaesgo2907 ปีที่แล้ว

    Большое спасибо за видео! очень понятное объяснение!

  • @ПолинаКызылова
    @ПолинаКызылова 7 หลายเดือนก่อน

    лучшее видео эвер, спасибо большое!!!

  • @Olena_salii
    @Olena_salii 2 ปีที่แล้ว

    Очень хорошее обьяснение для новичков! доступно! благодарю!

  • @alla6361
    @alla6361 ปีที่แล้ว +1

    Спасибо! Стало понятнее!

  • @МишаАстахов-ю2д
    @МишаАстахов-ю2д 3 ปีที่แล้ว

    Наконец то, классно обьяснил ! , уникально, супер, понятно !

  • @sergeyilyin756
    @sergeyilyin756 3 ปีที่แล้ว +1

    Это определено одно из лучших объяснений, а самое главное без таймаутов и интервалов со стрелочной функцией, который только запутают новичка. Спасибо, подписываюсь!

    • @digitalturkistan1857
      @digitalturkistan1857 2 ปีที่แล้ว

      Такие подачи для того что бы показать какой он крутой программист типа владилена

    • @gordonfram
      @gordonfram 2 ปีที่แล้ว

      @@digitalturkistan1857 нет. Данный автор никак не хвастается и не "намекает" на то, какой он классный программист

  • @ИльяЗахаров-е3э
    @ИльяЗахаров-е3э ปีที่แล้ว

    Спасибо) Очень подробно объяснили)

  • @annajegorova6120
    @annajegorova6120 ปีที่แล้ว

    Спасибо за видео, простой и понятный пример!

  • @andrzeyshliaha5302
    @andrzeyshliaha5302 3 ปีที่แล้ว +1

    Здорово, все по делу без воды, спасибо

    • @andrzeyshliaha5302
      @andrzeyshliaha5302 3 ปีที่แล้ว +1

      Правильно я понял, если например потом с данными нужно делать определенную логику а не просто текст, например в функции f3 то мы там просто ее и пишем ?

  • @valentyn996
    @valentyn996 2 ปีที่แล้ว +2

    Отличное объяснение, спасибо за старания!

    • @Lunar66
      @Lunar66 11 หลายเดือนก่อน +1

      не ожидал вас тут увидеть:)

    • @valentyn996
      @valentyn996 11 หลายเดือนก่อน

      @@Lunar66 😎😎

  • @_l.e.n.y_4956
    @_l.e.n.y_4956 2 ปีที่แล้ว +1

    Ви найкращий вчитель IT

  • @tazorprod.934
    @tazorprod.934 ปีที่แล้ว

    Очень доступно объяснили такую сложную тему, спасибо

  • @Olegio_Y
    @Olegio_Y 2 ปีที่แล้ว

    Спасибо что делаете упор на простоту обьяснения

  • @valerakuznetsov
    @valerakuznetsov 2 ปีที่แล้ว

    спасибо громадное Вы один кто так доходчиво рассказал

  • @tihunvolkov9288
    @tihunvolkov9288 ปีที่แล้ว

    Наконец-то, без таймеров, на нормальном реальном примере, ободряю.

  • @asgard1428
    @asgard1428 2 ปีที่แล้ว

    Все равно до конца не понял. Но это лучшее объяснение что я видел. Спасибо!

  • @karenmelikyan377
    @karenmelikyan377 2 ปีที่แล้ว

    Гениальный язык. И без async функция асинхронна и с async асинхронна. Главное, надо было все сделать работающим асинхронно, а потом выдумывать кастыли как все это синхронизировать. Просто гениально.

    • @maratkamaletdinov9017
      @maratkamaletdinov9017 2 ปีที่แล้ว

      Единственное, что понял, что асинхронность нужна, чтобы функции работали синхронно. Потому что без асинхронности они работают...асинхронно.

  • @aleks6607
    @aleks6607 2 ปีที่แล้ว +1

    Спасибо)) очень помог ваш видос))

  • @yaroslavzef7267
    @yaroslavzef7267 3 ปีที่แล้ว

    Круто. Не знал за такую тему! Спасибо

  • @gom-jabbar
    @gom-jabbar 9 หลายเดือนก่อน +1

    Благодарю

  • @СултанТемирбай-и8я
    @СултанТемирбай-и8я 3 ปีที่แล้ว

    и человек и видео прекрасны спасибо большое

  • @HeorhiiHryhorian
    @HeorhiiHryhorian ปีที่แล้ว

    Очень хорошее видео! Спасибо за труд!

  • @МастерЙода-я4ю
    @МастерЙода-я4ю 3 ปีที่แล้ว

    Спасибо, помог разобрасять с промисами и эсин эвей.

  • @_Iokanaan_Marusidze_
    @_Iokanaan_Marusidze_ 3 ปีที่แล้ว +1

    Спасибо, Александр !
    Вы один из тех немногих кто расказывает о сложном простыми словами и способствует развитию хода мысле в ученике.
    По моему разумению именно таким и должен быть настоящий УЧИТЕЛЬ.
    -------------------------
    Посдскажите пожалуйста, какие инструменты нужно задействовать в JS чтобы добиться четкого выполнениея таймингов ?
    Мне нужно чтобы функции вызывались с четкой переодичностью в 1сек и 500мс и весьма желайтельно чтобы этот таймер имел общее основание с Date(), поскольку именно оттуда я беру текущее время.

    • @_Iokanaan_Marusidze_
      @_Iokanaan_Marusidze_ 3 ปีที่แล้ว

      @@enjoymtx , не получается его отследить потому что тайминги Date() и Setinterval просто не совпадают.
      Может в системе Можна как то выйти на единый источник тактирования ? Здесь нужно понимать тонкости работы движка js.

    • @_Iokanaan_Marusidze_
      @_Iokanaan_Marusidze_ 3 ปีที่แล้ว

      @@enjoymtx , к примеру. Через setinterval я вызываю ф-цию каждую секунду, в начале этой ф-ции я проверяю равны ли мс обьекта Data() нулю. И вот здесь и трабла, они никогда не равны нулю. Как тогда я спрашиваю выдержать точные интервалы ?

    • @ПращурАмбатьелло
      @ПращурАмбатьелло 3 ปีที่แล้ว

      это делается через рекурсивный setTimeout

  • @TONY_BERG_MINSK
    @TONY_BERG_MINSK 2 หลายเดือนก่อน +1

    Чертов Гений❤❤❤🎉

  • @АлексейЛоскутников-ю4р
    @АлексейЛоскутников-ю4р 3 ปีที่แล้ว

    Хороший пример, спасибо. Еще можно разобрать на вашем примере обработку ошибок при асинхронных запросах. На простых примерах, как правило это упускают, а на продакшен без этого никак.

    • @sega21rus98
      @sega21rus98 3 ปีที่แล้ว

      просто в async функции используешь try-catch и все

  • @СергейКузнецов-т4р
    @СергейКузнецов-т4р 2 ปีที่แล้ว

    Очень благодарен. Лущенко the best ))))

  • @sedovolosyi
    @sedovolosyi 2 ปีที่แล้ว +1

    Суть понятна, спасибо. Функция go имеет лишний async, ну это мелочи

  • @mike-aaa
    @mike-aaa 2 ปีที่แล้ว

    Ради этого урока я написал свой сервер! 😎

  • @aleksey220280
    @aleksey220280 3 ปีที่แล้ว

    Очень доступная подача. Спасибо!

  • @sekirogenshiro2210
    @sekirogenshiro2210 3 ปีที่แล้ว

    Спасибо! Наконец то все понятно стало!

  • @knuckless__
    @knuckless__ 2 ปีที่แล้ว

    дуже доступно та легко
    дякую)

  • @dilmurodshernodirov5984
    @dilmurodshernodirov5984 3 ปีที่แล้ว

    Спасибо за видос ждём по больше ещё

  • @GTar1998
    @GTar1998 3 ปีที่แล้ว

    Все просто и понятно. Спасибо

  • @pypypy4228
    @pypypy4228 2 ปีที่แล้ว

    Наконец-то стало понятно, что async await фактически делают из асинхронного кода подобие синхронного.

  • @RinatWOT
    @RinatWOT 3 ปีที่แล้ว

    Спасибо большое! Очень круто объяснил

  • @bunnybugs6623
    @bunnybugs6623 3 ปีที่แล้ว

    Все супер, но Все же нужно пересмотреть, очень интерестно работа над ошибками

  • @MrBioneto
    @MrBioneto 3 ปีที่แล้ว

    Офигенно объяснили!!! Спасибо!

  • @ops_rv
    @ops_rv 3 ปีที่แล้ว +3

    Дякую, як завжди просто і доступно 👍

  • @georgepetrosyan4589
    @georgepetrosyan4589 3 ปีที่แล้ว

    Александр,как всегда респект. Наконец-то, кто-то понятно и на пальцах объяснил асинк-эвеит.
    А с помощью промисов, такого же результата можно добиться, посмотрев вашу лекцию про промисы?

  • @Synchro13
    @Synchro13 2 ปีที่แล้ว

    Огромное спасибо! просто и понятно

  • @araslanrus
    @araslanrus 3 ปีที่แล้ว

    Наконец то без циклов и таймаутов

  • @АрсенМахмудов-н2д
    @АрсенМахмудов-н2д 3 ปีที่แล้ว

    С меня подписка! Вот так нужно объяснять чайникам))

  • @GGSoft2009
    @GGSoft2009 2 ปีที่แล้ว

    Ну это и лекция. Спасибо больщое

  • @dreadwood
    @dreadwood 3 ปีที่แล้ว +1

    Доступное и понятное объяснение, спасибо. Интересно посмотреть код сервера. Может есть пример где-нибудь на github?

  • @АлександрИванов-ц6ф4в
    @АлександрИванов-ц6ф4в 3 ปีที่แล้ว

    мегачеткий видосик - впрочем как обычно

  • @mikhailurban1222
    @mikhailurban1222 3 ปีที่แล้ว

    как всегда супер!

  • @ИванНазаров-р8л
    @ИванНазаров-р8л 3 ปีที่แล้ว +5

    Александр не лучше ли для эмуляции сервера использовать jsonplaceholder ? мне кажется будет нагляднее и интереснее

  • @maksymkyryliuk492
    @maksymkyryliuk492 2 ปีที่แล้ว

    Good work. Awesome explanation!👍

  • @alexforos5425
    @alexforos5425 2 ปีที่แล้ว

    Спасибо большое! 👍

  • @МишаАстахов-ю2д
    @МишаАстахов-ю2д 2 ปีที่แล้ว

    Бомба 💣!

  • @timzeynalov3537
    @timzeynalov3537 3 ปีที่แล้ว

    вы все такие молодцы ) а когда появится такая услуга чтобы вот ну я завис к какой то теме например асинхронность и мне нужно чтобы учитель мне показал че и как ) а оплата по зеленым оценивается ну как бы час 50 долларов или 60 ну если скидка есть то буду часто обращаться )

    • @itgid
      @itgid  3 ปีที่แล้ว

      я вас не понял....

    • @timzeynalov3537
      @timzeynalov3537 3 ปีที่แล้ว

      @@itgid я хочу заниматься индивидуально по разным вопросам я иду по пути Fullstack если мы могли бы оказывать услуги то мы могли бы вместе работать я был бы вашим учеником VIP

  • @a89028724007
    @a89028724007 8 หลายเดือนก่อน

    спасибо, теперь понял

  • @ForseNight
    @ForseNight ปีที่แล้ว

    Лучший айтиевангелист

    • @itgid
      @itgid  ปีที่แล้ว

      Не. Максимум айтиатеист. Я за то что айти не является чем-то недостижимым.

  • @maximvladimirovich5261
    @maximvladimirovich5261 3 ปีที่แล้ว

    Класс!

  • @АнтонСоколов-п1ю
    @АнтонСоколов-п1ю 3 ปีที่แล้ว +1

    О, никогда ещё практически первым не писал коммент. Лайк в любом случае не глядя. Жду с нетерпением вебтока 4 февраля в эльбрускэмпе.

  • @Node2020
    @Node2020 ปีที่แล้ว

    отлично!

  • @andyyarys4467
    @andyyarys4467 3 ปีที่แล้ว

    Респект!

  • @Vetala007
    @Vetala007 3 ปีที่แล้ว

    спасибо, стало гораздо понятнее)))

  • @airjuicex
    @airjuicex 3 ปีที่แล้ว

    Заебись , по человечески

  • @ВикторияИльина-н7о
    @ВикторияИльина-н7о 3 ปีที่แล้ว

    Спасибо!)

  • @SlavaTopchiev
    @SlavaTopchiev 2 ปีที่แล้ว

    шикарно

  • @Сайхан-н4б
    @Сайхан-н4б 2 ปีที่แล้ว

    крутое видео!

  • @KaelnsLarien
    @KaelnsLarien 7 หลายเดือนก่อน

    Покажу прикол. Такой код выведет 3 1 4 2 (то есть асинхронная функция не блокирует код на await, он откладывает выполнение функции). Если уже поставить 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")
    ```

  • @Алексей-т2х8й
    @Алексей-т2х8й 3 ปีที่แล้ว

    отличный пример

  • @NeoJohnSmit
    @NeoJohnSmit 3 ปีที่แล้ว

    Класс, спасибо)

  • @bryuhanovdima
    @bryuhanovdima 3 ปีที่แล้ว

    ... об async, await ... Перед гласными буквами предлог "о" превращается в "об". Без негатива, просто для справки. А урок кстати полезный и интересный :)

    • @itgid
      @itgid  3 ปีที่แล้ว

      Спасибо