0

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

4

1 回答 1

2

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

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

于 2015-10-13T02:57:02.780 回答