我有一个for .. in .. :
循环,它正在调用一个等待结果的方法。如何让这个循环立即启动,然后等待结果?
这是我的代码:
@gen.coroutine
def update_all( self ):
for service in self.port_list:
response = yield self.update_service( str( service.get( 'port' ) ) )
self.response_list.append( response )
self.response = json.dumps( self.response_list )
return self.response
谢谢!
答案 0 :(得分:2)
建立一个列表(由Future
返回的update_service()
个对象),然后列出yield
列表:
@gen.coroutine
def update_all( self ):
futures = []
for service in self.port_list:
futures.append(self.update_service(str(service.get('port'))))
self.response_list = yield futures
self.response = json.dumps( self.response_list )
return self.response