Warm tip: This article is reproduced from serverfault.com, please click

javascript-TS2304:找不到名称“ Rx”

(javascript - TS2304: Cannot find name 'Rx')

发布于 2020-11-29 16:23:59

我在Angular中遇到了一些代码,这些代码每隔几秒钟就会在单词之间轮换一次:

words: string[] = ['foo', 'bar', 'baz'];
word = null;

rotateWords() {
  const source = Rx.Observable.interval(1000).take(this.words.length);
  const sub = source.finally(this.rotateWords).subscribe(i => this.word = this.words[i]));  
}

不幸的是,我在我的Rx(6.5.5)和Angular(10.0.9)版本中收到错误消息“未找到Rx ”。该代码似乎是用旧式的RxJ编写的。如何用新样式重写它?

Questioner
methuselah
Viewed
0
Owen Kelvin 2020-11-30 01:26:33

如果你在rxjs中使用angular 4+


import { interval } from 'rxjs'
import { take, finalize} from 'rxjs/operators'

words: string[] = ['foo', 'bar', 'baz'];
word = null;

rotateWords() {
    const source = interval(1000).pipe(take(this.words.length));
    const sub = source.pipe(finalize(this.rotateWords.bind(this))).subscribe(i => {
      this.word = this.words[i];
    });
  }
}

见下面的演示