Angular 7类型“ void”不可分配给类型“ ObservableInput <{}>”

时间:2019-05-31 00:32:23

标签: javascript angular typescript rxjs ngrx

我不知道为什么会出现这个错误

  getByURL(url: string): any {
    return this.apiService.get(url).pipe(map(data => data));
  }

  getByNextPage(): Observable<any> {
    const url = 'url';
    this.getByURL(url).pipe(
      expand(data => {
        console.log(data);
      })
    );
  }

我在具有expand(data => ...的行中遇到此错误。我想使用expand(),以便可以递归调用下一个api。

Type 'void' is not assignable to type 'ObservableInput<{}>'

任何提示将不胜感激。谢谢

3 个答案:

答案 0 :(得分:2)

那是因为您使用的expand()运算符很差。如果检查文档,expand()运算符必须返回一个Observable,并且您什么也不返回。

即使您返回“ data”变量,由于该规则,该错误仍将持续。

Check this documentation

答案 1 :(得分:2)

您需要检查数据变量的数据类型并在您的方法中返回数据。

getByNextPage(): Observable<any> {
    const url = 'url';
    this.getByURL(url).pipe(
      expand(data => {
        console.log(data);
        return data;
      })
    );
  }

答案 2 :(得分:1)

expand(data => {
  console.log(data);
})

您的函数不返回任何内容,因此无效。您需要返回一个可观察值。