したがって、サーバーからアクセス トークンを取得するために HTTP ポストを作成するオブザーバブルがあります。同じサーバーへの取得を実行する別のサーバーがありますが、最初のアクセストークンが存在する必要があります。したがって、2 つの異なる場所で両方のオブザーバブルを同時にサブスクライブできるようにしたいと考えていますが、GET オブザーバブルはもちろん POST オブザーバブルを待機する必要があります。別の Observables サブスクライブの完了を監視可能に待機させるにはどうすればよいですか?
1164 次
2 に答える
0
よくわかりませんが、ここにオプションがあります。postHttp$
アクセス トークン フェッチが観測可能であり、サーバーへの取得を実行するものであると仮定getFromServer$
し、それらが 1 つの値のみのシーケンスであると仮定します (つまり、promise のようなもの):
postHttp$.flatMap(function (authToken){return $.ajax(...)})
postHttp が値を持つのを待って、解決された値にフラット化される promise を生成します。つまりthe GET observable (...) wait on the POST observable.
、値を取得するには、オブザーバブルをサブスクライブするか、他のオペレーターをそれにチェーンし続けることができます。flatMap
は、セレクター関数パラメーターの戻り値として promise を受け入れるため、ここで に変換する必要はありませんRx.Observable
。
それはあなたが望んでいたものですか?
于 2016-01-06T11:00:22.760 に答える