Twisted - 将结果传递给多个回调

Twisted - pass result to mutiple callbacks

我有两个回调函数 B、C,我希望它们处理函数 A 的结果 returning Deferred (A->B->C)。通常,我会把它们合二为一,但出于某种原因,我不能那样做。

据我所知,扭曲的回调管道处理 return 之前的回调。 解决方案显然是将 B、C 作为回调添加到 A,并将 A 的原始 return 传递给 B,然后通过 return 传递给 C。有没有更好的方法,比如 反向 DeferredList?

或者您可以使用 inlineCallbacks

`
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)
`