Como combinar callLater e addCallback?
Isso está tão quebrado, espero que você seja misericordioso comigo:
reactor.callLater(0, myFunction, parameter1).addCallback(reactor.stop)
reactor.run()
myFunction
retorna um adiado.
Espero que esteja claro o que quero fazer:
assim que o reator estiver funcionando, quero ligar paramyFunction
. É por isso que estou usando 0 como parâmetro de atraso. Não há outra maneira, exceto callLater? Parece engraçado passar um atraso de 0.Eu quero parar o reator assim quemyFunction
concluiu a tarefa.Os problemas que tenho até agora:
AttributeError: DelayedCall instance has no attribute 'addCallback'
. Justo! Como faço para colocar um retorno de chamada na cadeia de retorno iniciado pormyFunction
entãoexceptions.TypeError: stop() takes exactly 1 argument (2 given)
.Para resolver o segundo problema, tive que definir uma função especial:
def stopReactor(result):
gd.log.info( 'Result: %s' % result)
gd.log.info( 'Stopping reactor immediatelly' )
reactor.stop()
E altere o código para:
reactor.callLater(0, myFunction, parameter1).addCallback(stopReactor)
reactor.run()
(ainda não está funcionando por causa do problema de callLater, masstopReactor
funcionará agora)
Não existe realmente outra maneira de ligar parareactor.stop
exceto definindo uma função extra?