首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python异步函数返回协程对象

Python异步函数返回协程对象
EN

Stack Overflow用户
提问于 2021-03-24 01:44:53
回答 1查看 740关注 0票数 1

我正在运行一个python程序来监听azure iot集线器。该函数将返回一个协程对象,而不是json。我看到,如果我们使用异步函数并将其作为正常函数调用,则会发生这种情况,但我创建了一个循环来获取事件,然后使用run_until_complete函数。这里我漏掉了什么?

代码语言:javascript
复制
async def main():
    try:
        client = IoTHubModuleClient.create_from_connection_string(connection_string)
        print(client)
        client.connect() 
        while True:
            message = client.receive_message_on_input("input1")   # blocking call
            print("Message received on input1")
            print(type(message))
            print(message)

        
    except KeyboardInterrupt:
        print ( "IoTHubClient sample stopped" )
    except:
        print ( "Unexpected error from IoTHub" )
        return

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())
    loop.close()

输出-在0x7f1439fe3a98>的input1 <协程><协程对象receive_message_on_input上收到的消息

EN

回答 1

Stack Overflow用户

发布于 2021-07-10 03:02:14

长话短说:你只需要写await client.receive_message_on_input("input1")。您的main是一个协程,但receive_message_on_input也是一个协程。您必须等待它完成。我可以给你讲这个故事,但它实在太长了。:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66768529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档