2016-11-03 5 views
0

APIリクエストにデータを送るサービスがあります。ただし、ユーザーがクリックしたチェックボックスの数に応じて、複数回呼び出す必要があります。これを行う最善の方法は何ですか? Observables forkJoinメソッドを調べていましたが、実装方法がわかりません。ここでループでAngular2サービスを呼び出す

iは、現在(ループなし)サービスを呼び出す方法です:

this.myService.update(id, data).subscribe(
    data => { 
     console.log('Data: ', data); 
    }, 
    error => { console.log('Error: ', error } 
); 
+0

htmlを追加してください – Bazinga

+0

@PatrickJaneこのシナリオではHTMLはありません。ループの中でこのサービスメソッドを呼び出す必要がある配列の 'ids'のほんの一束です。 – Hassan

+0

チェックボックスはどこですか – Bazinga

答えて

2

わかりました、私はそれを行う方法を見つけました:

let observables = new Array(); 

for(let id of ids) { 
    observables.push(this.myService.update(id, data)); 
} 

Observable.forkJoin(observables).subscribe(
    res => console.log(res), 
    error => console.log('Error: ', error) 
); 

は、基本的には私が必要なサービスの配列を作りました並行して実行し、forkJoinに渡します。すべての観測値が完了すると、応答はsubscribeメソッドの引数resに渡されます。

関連する問題