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)
`
我有两个回调函数 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)
`