我是Angular2 / Typescript的新手,我正在尝试编译我的项目,但是我收到了这个错误:
声明类型既不是'无效的函数。也没有任何'必须返回值
这是代码:
SyncCustomer(codCli: string): Observable<any>
{
this.mdService.Ordini_Sincronizza(codCli).subscribe(
data => {
return Observable.of(data);
},
error => {
console.log(error);
return Observable.of(error);
});
}
我没有意识到问题出在哪里......
感谢支持!
我以这种方式编辑了代码,现在它编译了......
SyncCustomer(codCli: string): Observable<any> {
return Observable.of(this.mdService.Ordini_Sincronizza(codCli).subscribe(
data => {
return data;
},
error => {
console.log(error);
return error;
}));
}
返回subscribe的可观察量是否有意义???
答案 0 :(得分:2)
return data
/ return error
部分仅与两个回调相关,您的方法不会为您的第一个代码返回任何内容,而第二个代码则返回Subscription
。
如果您想要返回Observable,则不应直接订阅:
SyncCustomer(codCli: string): Observable<any> {
return Observable.of(this.mdService.Ordini_Sincronizza(codCli);
}
其实我觉得你不需要在这里订阅。你需要订阅以获得一个冷的Observable来开始发射,但你应该订阅你需要数据的地方(通常在你的组件内)或者不在组件代码中订阅,而是在模板内使用async
订阅管。