为什么rxjs可观察事件在超时后会发生两次火灾?

时间:2018-02-03 19:55:44

标签: angular rxjs

我做了一个小实验,试图了解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

1 个答案:

答案 0 :(得分:2)

我在你的stackblitz中看到它只触发了一次。它可以触发两次的唯一方法是,如果由于某种原因你已经调用了两次方法,或者你使用一个热的observable来发射每2000毫秒。