我写了一个angular2服务。 服务应该 - 从其他服务加载数据 - 处理数据 - 应该返回一个包含组件数据的Observable
所以我写了这个:
getTimers(): Observable<Array<Timer>> {
this.apiService.getTimers().
subscribe(
data => {
this.variables.setTimers(data.length);
let timers: Array<Timer> = this.formatter.formatTimers(data);
this.setOngoingTimers(timers);
return Observable.of(timers);
},
error => { return Observable.throw(error); });
}
这是我得到的错误:
A function whose declared type is neither 'void' nor 'any' must return a value.
有人能指出我正确的方向吗?
答案 0 :(得分:7)
getTimers(): Observable<Array<Timer>> {
声明一个返回类型但不返回任何内容。
我假设你想要的是
getTimers(): Observable<Array<Timer>> {
return this.apiService.getTimers().
map(
data => {
this.variables.setTimers(data.length);
let timers: Array<Timer> = this.formatter.formatTimers(data);
this.setOngoingTimers(timers);
return Observable.of(timers);
});,
//error => { return Observable.throw(error); });
}
该行
return Observable.of(timers);
仅从传递给map()
(前subscribe()
)的函数返回,而不是从getTimers()