複数のAPIを呼び出してAngular6でサブスクライブする方法は?

khushboo

私のアプリでは、POST使用したすべてのリクエストを呼び出すためにservice

私が取得すると、特定のコード(例:401)を、サーバから、私は新しいトークンを取得するAPIを呼び出します。

別のトークンが受信されるまで、から他のAPI呼び出しがある場合は、それらすべてのリクエストを配列に格納します。nリクエストの場合があります。今のところ、newTokenAPIの呼び出しの進行中に3つのAPI呼び出しがあると想定します。

新しいトークンを取得したら、それを後続のすべてのAPIに渡す必要があります。次に、保留中のすべてのAPIリクエストを実行し、それぞれの呼び出しにデータを提供する必要があります。

コード例:

api.service.ts

POST(URL , param){
   return new Observable<any>(observer => {

  let headers = new HttpHeaders({
    'Content-Type': 'Content-Type': 'application/json'
  });

  let options = {
    headers: headers
  };

  this.http.post(URL, param, options)
        .subscribe(data => {
          var apiRes: any = data;                                       
          this.inValidSession();
          observer.next();
          observer.complete();              
  }
  ......

  //  For execute pending request I have set this 

  for (let i = 0; i < this.queue.length; i++) {                          
        this.REPOST(this.queue[i].param, this.queue[i].url).subscribe((queueResponse) => {             
          observer.next(queueResponse);
          observer.complete();
          this.queue.shift();                      
       });
   }
}

user.component.ts

ngOnInit(){
    this.getUserData();        
    this.getProductData();
}

getUserData(){
   this.apiService.post({},'/apiName').subscribe((response) => {
       console.log(response);
   })
}

getProductData(){
   this.apiService.post({},'/apiName2').subscribe((response) => {
       console.log(response);
   })
}

問題は、保留中のすべてのAPIを実行すると、コンソールにデータが表示されることです。ただしsubscribe、サービスファイルからそれぞれの.tsファイルの機能までではありません

注:サブスクライブされたデータは、それぞれではなく1つの関数でのみ取得されます。言い換えれば、私は両方のAPI解像度をgetProductData()機能させます。理由はわかりません。

誰かが解決策を持っているなら私を助けてください。

アビシェクマニ

使用できます

forkJoin()

複数の通話を同時に処理するために、複数の通話を行うことができrequest、サブスクライブした後array、応答が得られます

例えば

    forkJoin(Service1.call1, 
     Service2.call2)
    .subscribe(([call1Response, call2Response]) => {

ここで、service1とservice2は、関数ccall1とcall2を持つサービスであり、returnタイプはObservable

あなたはここでもっと見つけることができます

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

複数の非同期http呼び出しをサブスクライブする

分類Dev

Angular-複数のサブスクライバー/サブジェクトを持つHTTP呼び出しを呼び出す方法

分類Dev

1回のメソッド呼び出しで複数のイベントのサブスクライブを解除することは可能ですか?

分類Dev

入力プロパティをサブスクライブして関数Angular2 +を呼び出す方法

分類Dev

Angular6でブラウザコンソールからサービス関数を呼び出す

分類Dev

Angular $ Resourceの使用複数のAPI呼び出しを使用してサービスを作成するためのAngularの方法は何ですか?

分類Dev

サブスクライブメソッドはAngular5を複数回呼び出します

分類Dev

使用方法asyncを使用して、サブスクライブAPI呼び出しから戻り値を取得するのを待つ

分類Dev

Httppostを呼び出してAngular6でリクエストを取得する方法

分類Dev

Angular 6でサブスクライブを使用して、間隔を置いて呼び出して待機します

分類Dev

サブスクライブまたはフラットマップを使用したRxJavaRetrofit2apiの複数の呼び出し

分類Dev

Angular-複数の呼び出しを発生させずに複数回サブスクライブしますか?

分類Dev

同じコンポーネント内のいくつかの異なるAPI呼び出しに基づいて複数のパラメーターをルーティングするAngular6、これは単に悪い設計ですか?

分類Dev

Angular Observableは、後続の次の呼び出しでサブスクライブする機能をトリガーしません

分類Dev

Angular 2/4を使用してTypescriptクラス内で外部JavaScriptライブラリ関数を呼び出す方法は?

分類Dev

シングルの結果をキャッシュしたり、複数のサブスクライバーで呼び出されたときに複数回実行されないようにする方法はありますか?

分類Dev

対象の観測可能なサブスクライバーが角度で複数回呼び出しているのはなぜですか?

分類Dev

サブクラスを使用してMainClassで関数を呼び出す

分類Dev

Angular4-setTimeout呼び出しのサブスクライブを解除する必要がありますか?

分類Dev

Angular2 +でサブスクライブした後にAPI呼び出しが失敗したときに再試行する方法

分類Dev

API呼び出しでAngular6を使用して動的に更新されるグラフを作成する

分類Dev

UILabelのサブクラスで関数を呼び出す

分類Dev

サブスクライバーごとにObservable操作が1回(重複して)呼び出されるのはなぜですか?

分類Dev

サブスクライブ内でサブスクライブを呼び出す最良の方法は何ですか?

分類Dev

PythonでPAHO-MQTTを使用して複数のトピックをサブスクライブする方法

分類Dev

Javaでは、ランタイム例外を関数呼び出しのスーパー「ブレーク」として使用するのは悪い習慣ですか?

分類Dev

サードパーティのライブラリによって呼び出されるコールバック関数内でオブジェクト/変数を渡す/アクセス可能にする方法は?

分類Dev

手続き型ライブラリ呼び出しで引数の複雑さを処理する方法

分類Dev

ループでAPI呼び出しをサブスクライブしたい

Related 関連記事

  1. 1

    複数の非同期http呼び出しをサブスクライブする

  2. 2

    Angular-複数のサブスクライバー/サブジェクトを持つHTTP呼び出しを呼び出す方法

  3. 3

    1回のメソッド呼び出しで複数のイベントのサブスクライブを解除することは可能ですか?

  4. 4

    入力プロパティをサブスクライブして関数Angular2 +を呼び出す方法

  5. 5

    Angular6でブラウザコンソールからサービス関数を呼び出す

  6. 6

    Angular $ Resourceの使用複数のAPI呼び出しを使用してサービスを作成するためのAngularの方法は何ですか?

  7. 7

    サブスクライブメソッドはAngular5を複数回呼び出します

  8. 8

    使用方法asyncを使用して、サブスクライブAPI呼び出しから戻り値を取得するのを待つ

  9. 9

    Httppostを呼び出してAngular6でリクエストを取得する方法

  10. 10

    Angular 6でサブスクライブを使用して、間隔を置いて呼び出して待機します

  11. 11

    サブスクライブまたはフラットマップを使用したRxJavaRetrofit2apiの複数の呼び出し

  12. 12

    Angular-複数の呼び出しを発生させずに複数回サブスクライブしますか?

  13. 13

    同じコンポーネント内のいくつかの異なるAPI呼び出しに基づいて複数のパラメーターをルーティングするAngular6、これは単に悪い設計ですか?

  14. 14

    Angular Observableは、後続の次の呼び出しでサブスクライブする機能をトリガーしません

  15. 15

    Angular 2/4を使用してTypescriptクラス内で外部JavaScriptライブラリ関数を呼び出す方法は?

  16. 16

    シングルの結果をキャッシュしたり、複数のサブスクライバーで呼び出されたときに複数回実行されないようにする方法はありますか?

  17. 17

    対象の観測可能なサブスクライバーが角度で複数回呼び出しているのはなぜですか?

  18. 18

    サブクラスを使用してMainClassで関数を呼び出す

  19. 19

    Angular4-setTimeout呼び出しのサブスクライブを解除する必要がありますか?

  20. 20

    Angular2 +でサブスクライブした後にAPI呼び出しが失敗したときに再試行する方法

  21. 21

    API呼び出しでAngular6を使用して動的に更新されるグラフを作成する

  22. 22

    UILabelのサブクラスで関数を呼び出す

  23. 23

    サブスクライバーごとにObservable操作が1回(重複して)呼び出されるのはなぜですか?

  24. 24

    サブスクライブ内でサブスクライブを呼び出す最良の方法は何ですか?

  25. 25

    PythonでPAHO-MQTTを使用して複数のトピックをサブスクライブする方法

  26. 26

    Javaでは、ランタイム例外を関数呼び出しのスーパー「ブレーク」として使用するのは悪い習慣ですか?

  27. 27

    サードパーティのライブラリによって呼び出されるコールバック関数内でオブジェクト/変数を渡す/アクセス可能にする方法は?

  28. 28

    手続き型ライブラリ呼び出しで引数の複雑さを処理する方法

  29. 29

    ループでAPI呼び出しをサブスクライブしたい

ホットタグ

アーカイブ