"d.addCallback(lambda protocol: protocol.ready)" 在 Pika 的 Twisted 示例中做了什么?
What does "d.addCallback(lambda protocol: protocol.ready)" do in Pika's Twisted example?
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
使用回调的 return 值?
Return 每个回调的值都传递给 d
的回调链中的下一个回调。因此,protocol.ready
值被传递给 run
(下一个回调)。
见http://twistedmatrix.com/documents/current/core/howto/defer.html#multiple-callbacks
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
使用回调的 return 值?
Return 每个回调的值都传递给 d
的回调链中的下一个回调。因此,protocol.ready
值被传递给 run
(下一个回调)。
见http://twistedmatrix.com/documents/current/core/howto/defer.html#multiple-callbacks