Pika's example code with Twisted中的设置如下所示:
parameters = pika.ConnectionParameters()
cc = protocol.ClientCreator(
reactor, twisted_connection.TwistedProtocolConnection, parameters)
d = cc.connectTCP('hostname', 5672)
d.addCallback(lambda protocol: protocol.ready)
d.addCallback(run)
reactor.run()
d.addCallback(lambda protocol: protocol.ready)
行有什么影响?是否正在阅读.ready
属性副作用?或者addCallback
是否使用回调的返回值?
答案 0 :(得分:1)
每个回调的返回值都传递给d
的回调链中的下一个回调。因此,protocol.ready
值会传递给run
(下一个回调)。
请参阅http://twistedmatrix.com/documents/current/core/howto/defer.html#multiple-callbacks