Загрузка...

Как дождаться завершения ассинхронного метода?

Тема в разделе Node.js создана пользователем RichPerson 23 фев 2023. 308 просмотров

  1. RichPerson
    RichPerson Автор темы 23 фев 2023 Разработка - https://zelenka.guru/threads/4480553/ 2160 23 сен 2019
    [IMG]
    Наебался с этой хуйней пиздец. Хелпуйте, вопрос в заголовке. Суть в том что у меня данная ошибка.
    [IMG]
     
  2. RichPerson
    RichPerson Автор темы 23 фев 2023 Разработка - https://zelenka.guru/threads/4480553/ 2160 23 сен 2019
    Страница обновляется сама каждые 5 сек. Если приходит ответ, должен быть редирект, но как я понимаю последняя строка выполняется первее всех
     
  3. Gumus
    Ну тут либо callback функция(она срабатывает после завершения асинхронного кода), либо промисы(гугли сам), либо async await(гугли сам).
     
    1. Посмотреть предыдущие комментарии (5)
    2. sklifosowsky
      RichPerson, вот, мне не нравится, что ты на каждом запросе app.get, создаешь bot.on. bot.on это же обработчик событий, в данном случае callback_query. Я думаю для бота нужен отдельный коннектор и 1 обработчик на каждое событие. То-есть ты создаешь бота 1 раз и создаешь обработчик на все событие тоже 1 раз. А в app.get как-то уж сам делаешь, что ожидаешь событие
    3. RichPerson Автор темы
      sklifosowsky, сейчас у меня при каждом get запросе отправляет запроса на обновления. Если их нет, просто идет отправка wait.htm
    4. sklifosowsky
      RichPerson, попробуй websocket для обновлений в реальном времени
  4. Кодер
    [IMG]
    Судя по ошибке, пытаешься сделать редирект после того, как уже выдал какой-то ответ в браузер
     
    1. Посмотреть предыдущие комментарии (4)
    2. RichPerson Автор темы
    3. Кодер
      RichPerson, sendFile не поддерживает await?
    4. RichPerson Автор темы
  5. gcc_machine
    [IMG]
    ты надеюсь понимаешь, что твой await не работает?)
     
    1. RichPerson Автор темы
  6. lgxteam
    lgxteam 23 фев 2023 :BrainCosmic: 334 12 фев 2023
    можно использовать ключевое слово await, которое ожидает завершения выполнения асинхронной операции.

    Пример:
    import asyncio



    async def my_coroutine():

    await asyncio.sleep(1)

    print('Hello, world!')



    async def main():

    print('Before coroutine')

    await my_coroutine()

    print('After coroutine')



    asyncio.run(main())


    В этом примере my_coroutine() - асинхронный метод, который приостанавливает выполнение на 1 секунду с помощью asyncio.sleep().

    В функции main() мы используем await для ожидания завершения my_coroutine() перед продолжением выполнения.

    В результате выполнения этой программы будет выведено:
    Before coroutine

    Hello, world!

    After coroutine


    После выполнения await my_coroutine() программа продолжит выполнение и выведет "After coroutine".

    Таким образом, использование await позволяет дождаться завершения асинхронного метода.
     
Загрузка...
Top