2

次のように遅延を作成したい:

f1(x1)f2(x2)は並行して実行され(いわば)、それらが終了したら実行f3() します。同じパラメーターがあれば、次を実行します。

d = Deferred()
d.addCallbacks(f1)
d.addCallbacks(f2)
d.addCallback(lambda x: f3())
d.callback(x1)

x1と の両方に渡すようにf1しますf2。しかし、私はf1取得する必要がありx1ます。

これどうやってするの?

ありがとう。

4

1 に答える 1

3

あなたのユースケースを正しく理解しているかどうかはわかりませんが、これはDeferredListが特にうまく機能するようなものです。

d1 = function_that_returns_a_deferred_1(x1)
d2 = function_that_returns_a_deferred_2(x2)
d = DeferredList([d1, d2])
d.addCallback(lambda ign: f3())

このように、f3 は d1 と d2 の両方が完了した後にのみ実行されます。

于 2011-02-26T15:33:45.893 に答える