您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何阻止和等待基于回调的异步,Python函数调用

5b51 2022/1/14 8:21:57 python 字数 1797 阅读 516 来源 www.jb51.cc/python

我有一个Python脚本会产生许多异步请求.我正在使用的API进行回调.主函数调用run,我希望它阻止执行,直到所有请求都返回.我可以在Python 2.7中使用什么来实现这一目标?def run(): for request in requests: client.send_request(request, callback) d

概述

我有一个Python脚本会产生许多异步请求.我正在使用的API进行回调.

函数调用run,我希望它阻止执行,直到所有请求都返回.

我可以在Python 2.7中使用什么来实现这一目标?

def run():
    for request in requests:
        client.send_request(request,callback)

def callback(error,response):
    # handle response
    pass

def main():
    run()

    # I want to block here

import threading
import functools

def run():
    events = []
    for request in requests:
        event = threading.Event()
        callback_with_event = functools.partial(callback,event)
        client.send_request(request,callback_with_event)
        events.append(event)

    return events

def callback(event,error,response):
    # handle response
    event.set()

def wait_for_events(events):
    for event in events:
        event.wait()

def main():
    events = run()
    wait_for_events(events)

总结

以上是编程之家为你收集整理的如何阻止和等待基于回调的异步,Python函数调用全部内容,希望文章能够帮你解决如何阻止和等待基于回调的异步,Python函数调用所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶