类型“ AngularFireList <未知>”上不存在属性“ do”

时间:2019-09-08 13:54:35

标签: angular rxjs observable

因此,我有一个Angular 8应用程序,想使用rxjs中的do运算符。

但是我在这条线上出现错误

所以我用谷歌搜索。我发现必须添加此建议:

import 'rxjs/add/operator/do';

但这不起作用。

所以我有这个:

import { Injectable } from '@angular/core';
import { AngularFireDatabase } from '@angular/fire/database';
import { Course } from 'app/shared/model/course';
import { Observable } from 'rxjs';
import 'rxjs/add/operator/do';
import { tap, filter, map } from 'rxjs/operators';

@Injectable()

export class CoursesService {

  constructor(private db: AngularFireDatabase) { }

  findAllCourses(): Observable<Course[]> {
    return this.db.list('courses').do(console.log);
  }
}


但是我仍然收到此错误:

Property 'do' does not exist on type 'AngularFireList<unknown>'.ts(2339)

错误会消失

1 个答案:

答案 0 :(得分:1)

您需要使用 pipe() 进行链接,例如:

.pipe(tap(data => console.log('All: ' + JSON.stringify(data))))

您的代码应类似于

 return this.db.list('courses').snapshotChanges().pipe(
      tap(console.log),