2017-01-30 18 views
0

console.log( 'data')が決してヒットしない次のコードがあります。私はそれが主語と関係があると思う。助けてもらえますか?Angular2 multiple ObservablesとforkJoinが動作しない

getTextResourceSubject(key: string): Observable<string> {   
 
     const subject = new Subject<string>(); 
 
     // Do something here 
 
     return subject; 
 
    } 
 
    
 
    
 
    initialise(title: string, message: string, yes: string, no: string) { 
 
     var titleTranslated: string; 
 
     var messageTranslated: string; 
 
     var yesTranslated: string; 
 
     var noTranslated: string; 
 

 
     console.log('initialising'); 
 
     
 
     Observable.forkJoin(
 
      this.getTextResourceSubject(title), 
 
      this.getTextResourceSubject(message), 
 
      this.getTextResourceSubject(yes), 
 
      this.getTextResourceSubject(no) 
 
     ).subscribe(
 
      (data) => { 
 
       console.log('data'); 
 

 
       titleTranslated = data[0]; 
 
       messageTranslated = data[1]; 
 
       yesTranslated = data[2]; 
 
       noTranslated = data[3]; 
 

 
       console.log(data); 
 
      }, 
 
      err => console.log(err) 
 
     ); 
 
     } 
 
     

答えて

0

これは間違いなくSubjectとは何かを持っています。データを対象に渡す必要があります。それ以外の場合は値を送出せず、データは受信されません。あなたが値を公開するために必要なことは

mySubject.next(value); 

あなたの意図が明確ではないですが、私はあなたがBehaviorSubjectまたはReplaySubjectすることができ件名の別のタイプをしたいと仮定しています。

これはこれはあなたのkey値が移入された件名を作成する問題に

getTextResourceSubject(key: string): Observable<string> {   
    const subject = new BehaviorSubject<string>(key); 
    // Do something here 
    return subject; 
} 

を修正する必要があります。

実際に私はあなたのケースでは主題を使用する点はありません。あなたも行くことができる

getTextResourceSubject(key: string): Observable<string> {   
    const obs = Observable.of(key); 
    // Do something here 
    return obs; 
} 
関連する問題