什么" d.addCallback(lambda protocol:protocol.ready)"在Pika的Twisted例子中做什么?

时间:2015-10-12 07:19:33

标签: python twisted pika twisted.internet python-pika

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是否使用回调的返回值?

1 个答案:

答案 0 :(得分:1)

每个回调的返回值都传递给d的回调链中的下一个回调。因此,protocol.ready值会传递给run(下一个回调)。

请参阅http://twistedmatrix.com/documents/current/core/howto/defer.html#multiple-callbacks