如何从打字稿回调中取回我的数据?

How do I get my data back from a typescript callback?

我习惯在javascript中使用回调,但才刚刚开始学习Angular和打字稿,所以我不太确定如何让它工作。 到目前为止,这是我的代码。回调确实有效。当它输出时,我的 console.log 顺序正确,这意味着回调正在工作。 但是,我需要将我的数据从服务中取出,回到我正在安慰的地方。我不确定执行此操作的正确格式。我用谷歌搜索了答案,但没有找到正确的组合。我正在使用 Callback(data) 发回我的数据,但我不知道如何接收它。

//Output
running
Got some data etc
Finished


// In Component
  constructor(private imageService: ImageService) {
    console.log('running');
    this.imageService.test(()=>{
      console.log('Finished');
    });
  }
  

// In a service
  test(CallBack: { (callback: any): void; (): void; }) {
     this.httpClient.post('http://localhost/api/gallery/buildGallery', this.postData)
   .subscribe((data)=>{
       console.log('Got some data',data);
       CallBack(data);
     },(error)=>{
       console.log('error');
      CallBack ();
     });
  }

让我们这样试:

Component :

constructor(private imageService: ImageService) {
  console.log('running');
  this.imageService.test(...).subscribe(res => {
    console.log(res);
  });
}

Service :

test(postData: any): Observable<any> {
  return this.httpClient.post('http://localhost/api/gallery/buildGallery', postData);
}

这里是How to handle errors on subscribe的一些例子。它应该看起来像:

this.imageService.test(...).subscribe(
  res => {
    console.log('Success : ', res);
  },
  error => {
    console.error('Error :', error);
  }
);