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?

questionAnswers(4)

yourAnswerToTheQuestion