2016-07-24 18 views
0

2つのAJAXリクエストの結果がいくらか計算されるのを待つ必要があります。Observable.forkJoinへのサブスクリプションは決して呼び出されません

私は仕事をしていると思われるObservable.forkJoinメソッドを見つけました。だから私のコンポーネントに私が追加しました:

import { Observable } from 'rxjs/Rx'; 

// ... 

ngOnInit() { 
    Observable.forkJoin(
     this.instrumentService.current, 
     this.tuningService.tunings 
    ).subscribe(
     data => { 
      console.log(data); 
     } 
    ); 
} 

AJAXリクエストが送信されますが、私はsubscribeコールバックに渡すことはありません。

私はそれぞれの要求を実行しようとした場合separatlyそれが正常に動作します:データサービス(instrumentServicetuningService)で

this.instrumentService.current.subscribe(instrument => { 
    console.log(instrument); 
    this.instrument = instrument; 
}); 

this.tuningService.tunings.subscribe(tunings => { 
    console.log(tunings); 
    this.tunings = tunings; 
}); 

を、Observableは、バグのかもしれないソース(このようにしていないと宣言されています)知っている:

private _tunings: BehaviorSubject<Tuning[]> = new BehaviorSubject([]); 

/** 
* Class constructor. 
* 
* @param {ApiService} apiService 
*/ 
constructor (private apiService: ApiService) { 
    this.getAll().subscribe(tunings => this._tunings.next(tunings)); 
} 

public get tunings() { 
    return this._tunings.asObservable(); 
} 

public getAll(): Observable<Tuning[]> { 
    return this.apiService.call(this.url); 
} 

apiServiceは、内蔵の角度httpサービスを呼び出すの責任です。 Observableリターンnullの一つが、その後forkJoinサブスクリプションが呼び出されない場合は私の知る限り、現在forkJoinを覚えているよう

答えて

2

は、バグがあります。代わりに.zipでお試しいただけますか?

+0

はい、それです。私の 'BehaviorSubject'は初期状態として' null'を使います。 'zip'メソッドでうまく動作します。ありがとう。 – Elorfin

関連する問題