【问题标题】:Angular2 Observable - Function must return valueAngular2 Observable - 函数必须返回值
【发布时间】:2017-04-10 14:58:00
【问题描述】:

我写了一个 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.

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

【问题讨论】:

  • 不要注释像 let 语句这样的局部声明。让编译器推断类型。

标签: angular observable


【解决方案1】:

getTimers(): Observable&lt;Array&lt;Timer&gt;&gt; { 声明返回类型但不返回任何内容。

我假设你想要的是

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()返回

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多