簡體   English   中英

打字稿 - 聲明類型既不是“void”也不是“any”的函數必須返回一個值

[英]Typescript - A function whose declared type is neither 'void' nor 'any' must return a value

我是 Angular2/Typescript 的新手,我正在嘗試編譯我的項目,但出現此錯誤:

聲明類型既不是“void”也不是“any”的函數必須返回一個值

這是代碼:

SyncCustomer(codCli: string): Observable<any>
{ 
    this.mdService.Ordini_Sincronizza(codCli).subscribe(
    data => {          
      return Observable.of(data);
    },
    error => {
      console.log(error);
      return Observable.of(error);
    });  
}

我不明白問題出在哪里...

感謝支持!

更新001:

我以這種方式編輯了代碼,現在它可以編譯...

  SyncCustomer(codCli: string): Observable<any> {
    return Observable.of(this.mdService.Ordini_Sincronizza(codCli).subscribe(
      data => {
        return data;
      },
      error => {
        console.log(error);
        return error;
      }));
  }

返回訂閱的 observable 是否有意義???

return data / return error部分僅與兩個回調相關,您的方法不會為您的第一個代碼返回任何內容,而為第二個代碼返回Subscription

如果你想返回一個 Observable,你不應該直接訂閱:

SyncCustomer(codCli: string): Observable<any> {
  return Observable.of(this.mdService.Ordini_Sincronizza(codCli);
}

其實我認為你不需要在這里訂閱。 您需要訂閱才能讓冷 Observable 開始發射,但您應該在需要數據的地方(通常在您的組件內)訂閱,或者根本不在組件代碼內訂閱,而是在使用async管道的模板內訂閱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM