Angular 6中Observable.of is not a function报错原因排查请求
问题原因与解决方案
这个错误的核心原因是RxJS 6 对创建型操作符的使用方式做了重大调整——从你的package.json能看到,项目使用的rxjs版本是^6.0.0,而Observable.of()是RxJS 5及更早版本的写法,在RxJS 6里已经不再支持这种调用方式了,这就是你哪怕用全新项目也会报错的原因。
具体修改步骤
你已经在服务里正确导入了of操作符(import { Observable, of } from 'rxjs';),只需要修改getData方法的返回语句即可:
错误的写法:
public getData() : Observable<TableRow[]> { return Observable.of(this.testData); }
修正后的写法:
public getData() : Observable<TableRow[]> { return of(this.testData); }
补充说明RxJS 6的关键变化
RxJS 6为了优化包体积和API一致性,做了以下核心调整:
- 所有创建型操作符(如
of、from、interval)改为独立函数,直接导入后调用,不再挂载在Observable类上 - 管道类操作符(如
map、filter)需要通过pipe()方法串联使用,不再支持链式调用(比如observable.map(...)要改成observable.pipe(map(...)))
验证修改
修改完成后,重启你的Angular开发服务器(执行ng serve),"Observable.of is not a function"的错误就会消失,组件也能正常订阅并获取服务返回的测试数据了。
内容的提问来源于stack exchange,提问作者BigFilhao
相关产品推荐
相关产品推荐

