2016-06-30 11 views
1

私は、1つのトークンと、このサービスを呼び出してこのトークンを取得しようとする多くのサブスクライバのObservableを返すサービスを1つ持っています。 私は既にトークンをメモリに持っていれば、私はそれを返すだけです。新しいリクエストを作成し、トークンを保存して、これをObservableに戻してください。Rx js複数のサブスクライバクエリ

一度に多数の複数のサービスコールを使用する問題。そこで、この加入者の中には異なるトークンを受け取った人もいます。 RxJsには、最初からリクエストごとにいくつかのクエリを作成し、レスポンスを待ってすべてのユーザに値を送信するための方法がいくつか存在するでしょうか?

私は非常に助けになるでしょう。ありがとう。

答えて

1

publishLastを使用してobservableを1回作成して、共有可能にします。トークンがすでに利用可能であっても、これをすべての呼び出し側に観察可能にしてください。

var _tokenObservable; 
var _subscription; 
getToken() { 
    if (!_tokenObservable) { 
     // first time in, create the observable 
     _tokenObservable = makeCallToGetTokenObservable().publishLast(); 
     // start the request 
     _subscription = shared.connect(); 
    } 
    return _tokenObservable; 
} 
+0

ありがとうBrandon。 – Velidan