Что делает "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

Другие вопросы по тегам