Что делает "d.addCallback(лямбда-протокол: protocol.ready)" в примере Twisted Pika?
Настройка в примере кода 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
использовать возвращаемое значение обратного вызова?
1 ответ
Решение
Возвращаемое значение каждого обратного вызова передается следующему обратному вызову в d
цепь обратного вызова. Так, protocol.ready
значение передается run
(следующий звонок).
См. http://twistedmatrix.com/documents/current/core/howto/defer.html