RXJS:属性 animationFrame 在 typeof Scheduler 上不存在

RXJS: Property animationFrame doesn't exsist on typeof Scheduler

尝试使用 RXJS 和 Scheduler。最后,我想在滚动事件上有一个请求动画帧。

问题: 我收到类型错误:属性 animationFrame doesn't exsist on typeof Scheduler

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromEvent';
import 'rxjs/add/observable/of';
import 'rxjs/add/observable/timer';
import 'rxjs/add/operator/repeat';
import 'rxjs/add/operator/takeUntil';
import { Scheduler } from 'rxjs/Scheduler';

Observable
          .of(0, Scheduler.animationFrame) // error here
          .repeat()
          .takeUntil(Observable.timer(1000))
          .subscribe(() => console.log(x++));

问题:

如何让 animationFrame 被识别?

这可能有点令人困惑,但导出的顶级 Schedulerrxjs/Scheduler 是不同的 - 之前是对象包含要使用的调度程序实例,后者是 Class 来实例化那些。因此,要获取 animFrame 调度程序实例,

import { animationFrame } from 'rxjs/scheduler/animationFrame';

我已经根据评论建议编辑了答案,建议最好直接导入个人而不是从顶级导入某些内容。一旦发生顶级导入,它将使所有操作员修补等,一次加载整个库,因此需要谨慎使用。 (或者最好不要一般)。

如果您想使用 AnimationFrameScheduler,您需要导入它。 Scheduler 是通用调度程序 class。参见 https://github.com/ReactiveX/rxjs/blob/master/src/scheduler/animationFrame.ts

import { animationFrame } from 'rxjs/scheduler/animationFrame';

然后像这样使用它:

Observable.of(0, animationFrame)

自从 rxjs@6.0.0 animationFrame 重命名为 animationFrameScheduler 并且必须从 rxjs.

导入
import { animationFrameScheduler } from 'rxjs';