2017-01-20 28 views
1

私はdata.tsというクラスを持っています。その中には、さまざまなコンポーネントから呼び出されるメソッドがあります。このメソッドは、別のサービスからデータをサブスクライブします。サブスクリプションイベントの完了時に、私はサーバーから受信したデータを処理し、myFunctionを呼び出したコンポーネントのコールバックメソッドを呼び出したいと思います。それは可能ですか?以下のようなもの:angular2コンポーネントからコールバックメソッドをクラス(typescriptファイル)に渡す方法

myFunction(callback: function) { 
    otherService.getData().subscribe((res: Response) => { 
     //do some processing of response 
     caller.callback(processed_response) 
    }); 
} 

答えて

1

(更新された答えをもらっていないよう)あなたのコメントに基づいて、FALS'質問を詳しく説明します。

代わりに.mapを使用できます。あなたはおそらく一度だけレスポンスをマッピングしていますが、何回かマップすることができます。

myFunction() : Observable<any>{ 
    return otherService.getData() 
     .map(res => { 
     return ... // your processing 
     }) 
} 

、その後.subscribe:返信用

myFunction.subscribe(data => { 
    //do whatever you like 
}); 
2

Observableもっと便利に復帰すること、その後、発信者からの購読べき。呼び出し側で

myFunction() : Observable<any>{ 
    return otherService.getData(); 
} 

myFunction.subscribe((res: Response) => { 
     //use the response 
}); 
+0

感謝。それはうまくいくだろうが、私が戻ってくる前に何らかのデータ処理をしたいのであれば、どうすればいいのだろうか? –

関連する問題