Angular2 Observable - 函数必须返回值

Jun*_*ias 2 observable angular

我写了一个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); }); 
    }
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

A function whose declared type is neither 'void' nor 'any' must return a value.
Run Code Online (Sandbox Code Playgroud)

有人能指出我正确的方向吗?

Gün*_*uer 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); }); 
}
Run Code Online (Sandbox Code Playgroud)

这条线

return Observable.of(timers);
Run Code Online (Sandbox Code Playgroud)

仅从传递给map()(前subscribe())的函数返回,但不从getTimers()