为什么我创建的这个 observable 会冻结 UI 并且永远不会完成?

时间:2021-04-13 16:42:49

标签: javascript angular typescript observable

我一直在尝试创建自己的 observable,并希望创建一个 observable,该 observable 可以无限期地返回从 3 开始的 3 次表,每秒一个。但是,当我使用此代码尝试它时,它会冻结 UI 并且永远不会完成。有人能解释一下为什么会这样吗?

我仍然不确定订阅者函数实际上做了什么,以及一旦它击中观察者.next 时 observable 会发生什么。

 LogThreeTimesTableEveryTwoSeconds(): void {

    let currentValue = 0;

    function someSubscriber(observer: Observer<number>) {
      while (currentValue < 10) {
        setTimeout(() => {
          currentValue += 3;
          observer.next(currentValue);
        }, 1000);
      }
    }

    let anObservable = new Observable(someSubscriber);

    anObservable.subscribe((x) => console.log(x));
 }

0 个答案:

没有答案