我做了一个小实验,试图了解rxjs的可观察性是如何工作的,而且我看到的东西让我感到困惑......
为什么“你好!”超时后记录 两次 ?
export class AppComponent {
constructor() {
console.clear()
this.getObservable()
.subscribe(data => console.log(data))
}
getObservable(): Observable<any> {
return Observable.create(obs => {
setTimeout(() => {
obs.next("Hello!");
}, 2000)
})
}
}
https://stackblitz.com/edit/angular-rxjs-observable-interval-n9coeg?file=app%2Fapp.component.ts
答案 0 :(得分:2)
我在你的stackblitz中看到它只触发了一次。它可以触发两次的唯一方法是,如果由于某种原因你已经调用了两次方法,或者你使用一个热的observable来发射每2000毫秒。