2

私の方法は次の形式です。

@defer.inlineCallbacks
def myAsyncMethod():
    if someCondition:
        yield anotherAsyncMethod()

問題は、そうsomeConditionでない場合はTrue歩留まりが発生せず、これが本質的に同期関数になることです。デコレーターはこれをエラーにします。

今、私はちょうどyield 1それの最後にやっています。それはここで正しいことですか?私はもちろん行うことができます:

d = Deferred()
d.callback(0)
yield d

しかし、それがどのように違うのかわかりません

編集:ここで意味したのは、実行しようとするyield myAsyncMethod()と例外が生成されるということです。例外を処理する必要はありません。それを回避する 1 つの方法は、myAsyncMethod() の最後に何かを単に生成することですが、これを行うためのハックしない別の方法はありますか。ここでの一般的な慣行は何ですか?

4

1 に答える 1