Загрузка...

How to wait for an asynchronous method to complete?

Thread in Node.js created by RichPerson Feb 23, 2023. 298 views

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