我的方法是以下形式:
@defer.inlineCallbacks
def myAsyncMethod():
if someCondition:
yield anotherAsyncMethod()
问题是,如果someCondition
不是,True
则不会发生任何屈服,这实际上变成了一个同步函数。然后装饰器导致这是一个错误。
现在,我只是在做yield 1
最后的事情。这是正确的做法吗?我当然可以这样做:
d = Deferred()
d.callback(0)
yield d
但我看不出有什么不同
编辑:我的意思是,如果我尝试这样做,yield myAsyncMethod()
那么它会产生异常。我不想处理异常。避免它的一种方法是在 myAsyncMethod() 的末尾产生一些东西,但是是否有另一种简单的方法来做到这一点。这里的常见做法是什么?