angular2如何将回调方法从组件传递到类(typescript文件)

时间:2017-01-20 21:02:12

标签: angular typescript

我有一个名为data.ts的类。因为我有一个从各种组件调用的方法。此方法订阅来自其他服务的数据。在订阅事件完成时,我想处理从服务器接收的数据并调用已调用myFunction的组件的回调方法。这可能吗?如下所示:

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

2 个答案:

答案 0 :(得分:2)

更方便的是返回Observable然后从来电者订阅。

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

来电者:

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

答案 1 :(得分:1)

详细说明Fals&#39;根据您的评论提出的问题(因为您还没有得到更新的答案)。

您可以改用.map。您可能之前已经映射过一次响应,但您可以多次映射。

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

然后.subscribe

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