私が過去にこれを行ったいくつかの方法があります。しかし、「自動化」されたものはありません。
初め:
各非同期コールバックは(必要に応じて)次のオブジェクトへの呼び出しを発行し、そのようにカスケードします。呼び出しが失敗すると、その時点でカスケードが停止し、エラーが1つだけ表示されます。これと次の欠点は、通話のおしゃべりです。
2番:
すべての非同期呼び出しが行われ、期待される戻りアイテムでカウンターが設定されます。各ハンドラーは、カウンターをロックして更新します。counter == expectedCountの場合、すべてのアイテムが返されます。リストボックスには、返されたアイテムのコレクションが表示されます。これの欠点は、a)必要かどうか、b)何らかの障害がプロセス(したがって呼び出し)を停止する必要があるかどうかを知らずに、すべての呼び出しを行うことです。それはまたおしゃべりであり、エラーは不必要な呼び出しが行われたことを意味します。
第3:
最も愚かなプロセスは、サーバーでルールが明確に定義されている場合にのみ機能します。非同期呼び出しを行うと、サービスがカスケードを実行します。これは、後続のすべてのクエリが最初のクエリの子を返す場合にのみ最適に機能します。その後、結果を単一のオブジェクトとして返すことができます。これは間違いなくおしゃべりではありません。これの欠点は、返されるオブジェクトのサイズです。