RxJs 6与Angular 6中无法使用Observable.of的问题求助
解决RxJS 6 + Angular 6中
Observable.of无法使用的问题 嗨,这个问题我太熟悉了!RxJS 6对API做了大幅度的精简和调整,其中一个重要变化就是把所有创建Observable的静态方法(比如of、from这些)从Observable类里拆出来,变成了独立的函数,所以你再用Observable.of()肯定会收到“Property 'of' does not exist on type 'typeof Observable'”的报错。
具体解决步骤:
- 你已经正确导入了
of函数(import { Observable, of } from "rxjs";),现在只需要把原来的调用方式改一下:
原来的代码:
改成:return Observable.of(this.purposes);return of(this.purposes);
举个完整的示例:
import { Component } from '@angular/core'; import { Observable, of } from "rxjs"; @Component({ selector: 'app-example', templateUrl: './example.component.html' }) export class ExampleComponent { purposes = ['用途1', '用途2', '用途3']; getPurposes(): Observable<string[]> { // 直接调用独立的of函数即可 return of(this.purposes); } }
额外提醒:
RxJS 6里还有很多类似的API变化,比如:
Observable.from()→from()Observable.throw()→throwError()Observable.empty()→empty()
如果之后遇到类似的“属性不存在”报错,大概率都是这个原因,直接改用对应的独立函数就好啦。
内容的提问来源于stack exchange,提问作者Harish Krishnan
相关产品推荐
相关产品推荐

