【问题标题】:angular2 how to pass callback method from component into class (typescript file)angular2如何将回调方法从组件传递到类(打字稿文件)
【发布时间】:2017-06-05 22:50:10
【问题描述】:

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

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

【问题讨论】:

    标签: angular typescript


    【解决方案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
      });
      

      【讨论】:

      • 感谢您的回复。它会起作用,但如果我想在返回之前对数据进行一些处理,那么我该怎么办?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-07
      • 2018-03-22
      • 2021-02-28
      • 2022-12-07
      • 2021-09-19
      • 1970-01-01
      • 2021-12-27
      相关资源
      最近更新 更多