无法在RxJs 6和Angular 6中使用Observable.of
我得到一个错误,说明类型“typeof Observable”上不存在属性“of”看起来cartant的评论是正确的,没有具体说明该方法,但是说“操作Observable的类已被函数替换” 这似乎意味着所有或大部分类方法,如.of、.throw等,都已被函数替换 所以不是无法在RxJs 6和Angular 6中使用Observable.of,angular,rxjs6,angular-observable,Angular,Rxjs6,Angular Observable,我得到一个错误,说明类型“typeof Observable”上不存在属性“of”看起来cartant的评论是正确的,没有具体说明该方法,但是说“操作Observable的类已被函数替换” 这似乎意味着所有或大部分类方法,如.of、.throw等,都已被函数替换 所以不是 import { Observable, of } from "rxjs"; // And if I try to return like this return Observable.of(this.purposes
import { Observable, of } from "rxjs";
// And if I try to return like this
return Observable.of(this.purposes);
做
rxjs 6
从'@angular/router'导入{preload-strategy,Route};
从'rxjs'导入{可观察的};
导出类SelectivePrelodingStrategy实现PrelodingStrategy{
预加载(路径:路径,负载:功能):可观察{
返回route.data&&route.data.preload==false?of(null):load();
}
}
要避免,请按如下方式导入它们:
import { PreloadingStrategy, Route } from '@angular/router';
import { Observable, of } from 'rxjs';
export class SelectivePreloadingStrategy implements PreloadingStrategy {
preload(route: Route, load: Function): Observable<any> {
return route.data && route.data.preload === false ? of(null) : load();
}
}
在v6中,它只是返回(this.purposes)。这是在哪里记录的?典型的一行是“你从一个地方,在‘rxjs/operators’下,拉入你需要的任何操作符”,这显然不同于创建,但不清楚静态方法是否被替换。这些重要的知识分散在银河系中,就像我在寻找毒蛇一样,只是浪费了时间;关于
reduce()
?reduce()已移动到运算符,因此您可以使用“rxjs/operators”中的import{reduce}导入它这是一个如此可怕的变化。这些方法应该是类上的静态方法,就像以前一样。现在更可能发生名称冲突。您可以对更改进行概述
import { of } from "rxjs";
of(this.purposes);
import { PreloadingStrategy, Route } from '@angular/router';
import { Observable, of } from 'rxjs';
export class SelectivePreloadingStrategy implements PreloadingStrategy {
preload(route: Route, load: Function): Observable<any> {
return route.data && route.data.preload === false ? of(null) : load();
}
}
import { Observable } from 'rxjs/Observable';
import { of } from 'rxjs/observable/of';