Як працює async/await у Javascript?

Поділитися
Вставка
  • Опубліковано 20 жов 2024

КОМЕНТАРІ • 11

  • @WebxInUa
    @WebxInUa  4 місяці тому

    Вийшло класне відео про Функції генератори та ітератори у JS -
    ua-cam.com/video/v4vRSZHkIb8/v-deo.html

  • @ops_rv
    @ops_rv 4 місяці тому

    Подивився, що є на каналі, всі про біль js розробника))
    Підписався, дякую)

    • @WebxInUa
      @WebxInUa  4 місяці тому

      Дякую 🤩🫶

  • @ant_code
    @ant_code 4 місяці тому +5

    є ще елегантніший спосіб щоб обходитись без врапера try/catch. Наприклад: const result = await myAction().catch(() => null); в такому прикладі result буде null при реджекті проміса

  • @Drinchyk
    @Drinchyk 4 місяці тому

    Я думав: Де я => Початок => Кінець => Promise(але це не так перевірив себе потім). Дякую за цікаве відео. Я здогадуюсь чому так, але було б цікаво коротенький розбір по цьому))

    • @WebxInUa
      @WebxInUa  4 місяці тому +4

      Річ у тім, що ми не викликали example із ключовим словом await(), інтерпретаор JS відпрацював наступний чином - виклик функції без await (Тобто очікувати на асинхронні дії у тілі функції не будем) АЛЕ - Так як у середині є синхронна оперція console.log('початок'), то вона відпрацює одразу, далі Проміс - це асинхронна операція, відповідно вона буде виконана через сек, таким чином ми виходимо з функції, і викликаємо наступну синхронну операцію console.log('Де я?')
      згодом Після 1 сек виконується блок setTimeout
      а далі наступний рядок після нього console.log("Кінець")
      ......
      У JS є таке поняття FIFO (First In First Out) це про те як виконується код із стеку. Доречі SetTimeout це асинхронна операція, у неї є окреме середовище де вона простими словам відбуває свій час очікування перед виконаням у стеці виклику, назв WebAPI.
      У мене є відео про EventLoop там якраз я розкриваю деталі роботи синхронного та асинхронного коду
      ua-cam.com/video/rvqgOH5swPU/v-deo.html

  • @ivanco_s
    @ivanco_s 4 місяці тому

    👍👍👍

  • @эрен-ъ8г
    @эрен-ъ8г 4 місяці тому +1

    Нарешті українською! Дякую тобі!

    • @WebxInUa
      @WebxInUa  4 місяці тому

      Вам дякую 🫶

  • @МихайлоГонтарІА-01
    @МихайлоГонтарІА-01 4 місяці тому +2

    Ми спочатку викликаємо async функцію , там у нас є console.log("Початок"); . В нас там проміс який ми чекаємо (Тому і не виводиться console.log("Кінець");). Так як async функція example() викликається без await то ми не зупиняємось і йдемо далі . Тому викликається console.log("Де я?"); . І через 1 сек. викликається console.log("Кінець");
    Консоль:
    Початок -> Де я ? -> Кінець

    • @WebxInUa
      @WebxInUa  4 місяці тому

      Все вірно 🙌