我一直在尝试创建自己的 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));
}