Тип Angular 7 'void' нельзя назначить типу 'ObservableInput <{}>' - PullRequest
0 голосов
/ 31 мая 2019

Я не могу понять, почему я получил эту ошибку

  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);
      })
    );
  }

Я получил эту ошибку в строке с расширением (data => .... Я хочу использовать раскрытие (), чтобы я мог рекурсивно вызвать следующий API.

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

Любой намек был бы очень полезен. Спасибо

Ответы [ 3 ]

2 голосов
/ 31 мая 2019

Вам необходимо проверить тип данных переменной данных и вернуть данные в ваш метод.

getByNextPage(): Observable<any> {
    const url = 'url';
    this.getByURL(url).pipe(
      expand(data => {
        console.log(data);
        return data;
      })
    );
  }
2 голосов
/ 31 мая 2019

Это потому, что вы плохо используете оператор расширения ().Если вы проверяете документацию, оператор expand () должен возвращать Observable, а вы ничего не возвращаете.

Даже если вы возвращаете переменную «data», ошибка все равно будет сохраняться, потому что это правило.

Проверьте эту документацию

1 голос
/ 31 мая 2019
expand(data => {
  console.log(data);
})

Ваша функция ничего не возвращает, следовательно, пустота.Вам нужно вернуть наблюдаемое.

...