繁体   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