JavaScript: Когда использовать return await?

Поделиться
HTML-код
  • Опубликовано: 15 ноя 2024

Комментарии • 63

  • @PurpleSchool
    @PurpleSchool  Год назад +3

    Если хотите детально изучить JS, то переходите на purpleschool.ru

  • @nolw.7805
    @nolw.7805 Год назад +18

    Да, даже webstorm подсказывает, что нужно убирать await. Просто если не убрать, будет выглядеть примерно как: await await.

  • @eldarda
    @eldarda Год назад +5

    Еще добавлю, есть правило no-return-await в eslint. Еще этот await не совсем бесполезный, он помогает более информативный стек вызова функций получить. В том правиле eslint как раз написано об этом в соучаях когда не надо использовать это правило

  • @QwDragon
    @QwDragon 7 месяцев назад +1

    Ну да, а async Пушкин убирать будет?

  • @ОлександрБарабаш-в7ш
    @ОлександрБарабаш-в7ш 10 месяцев назад +3

    В принципе да, но если вы его не пропишете то вы просто потеряете часть стектрейса. И если get запрос выдаст ошибку вы не получите точное место откуда она пришла, a место где было обнаружено не выполненный промис.

    • @NoName-oh9fh
      @NoName-oh9fh 9 месяцев назад

      Что за бред. Функция возвращает промис, ты ее парсишь через await, но в итоге то функция async автоматом твой распарсенный результат обварачивает в дополнительный промис.

  • @alcokoalco9278
    @alcokoalco9278 5 месяцев назад

    А зачем проверку на undefined пихать в блок try catch?

  • @green.616
    @green.616 Год назад +1

    Точно, спасибо за наблюдение

  • @MentorYoudo
    @MentorYoudo 9 месяцев назад

    Напиши, пожалуйста, как называется твоя тема визуал студио-код?

    • @PurpleSchool
      @PurpleSchool  9 месяцев назад

      Bearded Theme Vivid Purple

  • @N5O1
    @N5O1 6 месяцев назад

    убирайте await и потом ловите рандомные баги, когда у вас не обрабатывается корректно промис =)
    если метод асинхроннный то ты его вызываешь через await.
    если вам влом писать букавы, то можете попробовать python например.
    с таким успехом можно и от ключевых слов const и let можно отказаться, всё равно переменные будут создаваться и так, какая разница

    • @PurpleSchool
      @PurpleSchool  6 месяцев назад

      Так вы возвращаете асинхронную функцию и await перед верхний функции отработает. При чем тут случайные баги?

    • @PurpleSchool
      @PurpleSchool  6 месяцев назад

      Я ни где не говорю, что нужно не писать await вообще, но если асинхронная функция возвращает асинхронную функцию, то достаточно await только один раз написать, если мы не хотим внутри ловить ошибку. Вам даже Webstorm подсветит это как замечание.

  • @alexmitelman6145
    @alexmitelman6145 Год назад

    Если await убрали, по идее нужно и async убрать? Или вы его оставляете только лишь для того, что бы функция возвращала Promise вместо Promise | null?

  • @viacheslavbabenko5156
    @viacheslavbabenko5156 Год назад +1

    Привет, подскажи какая у тебя тема в vscode стоит?

  • @deuse7222
    @deuse7222 Год назад

    Изначальный код будет плох, если обернуть try/catch на вызывающей стороне, в контроллере например?

    • @PurpleSchool
      @PurpleSchool  Год назад

      Вполне норм, если я правильно понял вопрос

  • @ЭлханАкбаров-б9б

    Какая у тебя стоит тема?

  • @AndreiVvedenskii
    @AndreiVvedenskii Год назад

    А разве промис не возвращает state, если еще не успел отработать?

    • @PurpleSchool
      @PurpleSchool  Год назад +1

      если не использовать await, да и потому верхний await будет с ним работать верно

  • @andrey_u
    @andrey_u Год назад +1

    Что за редактор?

  • @war9453
    @war9453 Год назад

    Что если db.get изначально возвращает промис?Тогда без await сделать будет несколько проблематично

    • @PurpleSchool
      @PurpleSchool  Год назад

      Так он и возвращает, тут как раз и описывается что при том, что он возвращает нас не нужен await, так как мы возвращаем из асинхронной функции.

  • @Noilty
    @Noilty 11 месяцев назад

    почему на ютубе все говорят заторможенно?

  • @КириллЯковлев-р9щ

    Что за тема?

  • @ВладИванюк-ь3ь
    @ВладИванюк-ь3ь Год назад

    Зачем в этой функции async вообще

    • @PurpleSchool
      @PurpleSchool  Год назад

      Чтобы использовать await

  • @trashmail9378
    @trashmail9378 Год назад +2

    Null тоже не очень возвращать т.к обязательно каждый раз придется проверять результат на null

    • @PurpleSchool
      @PurpleSchool  Год назад

      Как раз осознанный null лучше пробросать ошибок с разбором какая из ошибок

    • @antonsovko698
      @antonsovko698 Год назад +1

      @@PurpleSchool ну как бэ на get кидаешь ошибку, на find возвращашь null. Нейминг не корректный.

  • @FozGenKo
    @FozGenKo Год назад

    Промисы для меня понятнее, чем async await...

    • @PurpleSchool
      @PurpleSchool  Год назад +2

      Async await это синтаксис для работы с Promise

    • @FozGenKo
      @FozGenKo Год назад

      @@PurpleSchool мне проще и удобнее использовать then catch finally...

    • @PurpleSchool
      @PurpleSchool  Год назад

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

  • @rgnaros
    @rgnaros 9 месяцев назад

    Здесь есть более страшная ошибка. Если мы передадим в getUser 0 то получим null, так как неявный каст

  • @AlexanderRadchenko
    @AlexanderRadchenko Год назад +1

    Лучше так не делать...

    • @PurpleSchool
      @PurpleSchool  Год назад

      Что именно не делать?

    • @AlexanderRadchenko
      @AlexanderRadchenko Год назад +1

      @@PurpleSchool не убирать await даже когда вы не обрабатываете исключение. Это плохая практика... Экономия копейки, а отладка в случае проблем будет затруднена.

    • @PurpleSchool
      @PurpleSchool  Год назад +1

      Почему отладка усложниться? Ты так же получишь то же исключение, которые будет поймано выше по стеку.

    • @AlexanderRadchenko
      @AlexanderRadchenko Год назад +2

      @@PurpleSchool Ты получишь другой стек вызовов. Из lint это правило убрали, потому что оно в основном вредное. Более того они пишут что сейчас как раз оставлять будут работать быстрее.

    • @AlexanderRadchenko
      @AlexanderRadchenko Год назад

      @@PurpleSchool тебе уже писали почему, ты как будто не читаешь...

  • @unnamed7189
    @unnamed7189 9 месяцев назад

    return id ? db.get(id) : null;