Twisted-将结果传递给多个回调
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Twisted-将结果传递给多个回调相关的知识,希望对你有一定的参考价值。
我有两个回调函数B,C,我希望它们处理函数A的结果返回Deferred(A-> B-> C)。通常,我会将他们合并为一个,但是由于某种原因,我无法做到这一点。
据我所知,扭曲的回调管道过程返回了先前的回调。解决方案显然是将B,C添加为A的回调,并将A的原始返回传递给B并返回到C。还有更好的方法吗,例如reverse DeferredList?
答案
`
from twisted.internet.defer import inlineCallbacks
@inlineCallbacks
def doThing():
result = yield A()
B(result)
C(result)
# or if it is a function returning a deferred
yield B(result)
yield C(result)
`
以上是关于Twisted-将结果传递给多个回调的主要内容,如果未能解决你的问题,请参考以下文章
对“xxx”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。 错误解决一例。(代码片段