ツイストを使用してコードをより非同期にする方法を見つけようとしています。
- 関数は遅延オブジェクトを返します
- 次に、コールバックのリストを追加します
- 最初のコールバックは、遅延関数が次のような結果を提供した後に呼び出されます。
deferred_obj.callback
- 次に、コールバックのチェーンで、最初のコールバックがデータを処理し、2番目のコールバックを呼び出します
- や。。など。
ただし、チェーンされたコールバックはチェーンされているため非同期とは見なされず、イベントループは、それ以上なくなるまで、それぞれを同時に起動し続けます。
ただし、遅延オブジェクトがあり、そのコールバックとしてdeferred_obj.callbackをアタッチした場合d.addCallback(deferred_obj.callback)
、deferred_objはデータを待機しているため、これは非同期と見なされ、データを渡すメソッドはデータを待機しています。同様に、ただし、i d.callback'd'オブジェクトがデータを処理すると、deferred_obj.callbackが呼び出されます。ただし、このオブジェクトは遅延されるため、連鎖コールバックの場合とは異なり、非同期で実行されます...正しいですか?
私のコードがすべて非ブロッキングであると仮定すると、これは、連鎖コールバックが非同期ではないのに対し、連鎖遅延は非同期ではないことを意味しますか?