hijiangtao / hijiangtao.github.io.comments

Comments container for https://hijiangtao.github.io/
MIT License
0 stars 0 forks source link

响应式编程入门指南 - 通俗易懂 RxJS - Joe’s Blog #65

Open hijiangtao opened 4 years ago

hijiangtao commented 4 years ago

https://hijiangtao.github.io/2020/01/13/RxJS-Introduction-and-Actions/

tolerious commented 1 year ago

感谢分享。 😄 多播与单播示例那里是不是有误: 多播的示例代码应该是:

      let sub = new Subject();
      sub.subscribe((v) => console.log(v));
      sub.subscribe((v) => console.log(v));
      sub.next(1);
      sub.next(2);

而不是

let observable = Rx.Observable.create(function subscribe(obsever) {
  observer.next(1)
  observer.next(2)
})
let subject = new Rx.Subject()
subject.subscribe(v => console.log(v))
subject.subscribe(v => console.log(v))
observable.subscribe(subject)
hijiangtao commented 1 year ago

@tolerious 感谢分享。 😄 多播与单播示例那里是不是有误: 多播的示例代码应该是:

      let sub = new Subject();
      sub.subscribe((v) => console.log(v));
      sub.subscribe((v) => console.log(v));
      sub.next(1);
      sub.next(2);

而不是

let observable = Rx.Observable.create(function subscribe(obsever) {
  observer.next(1)
  observer.next(2)
})
let subject = new Rx.Subject()
subject.subscribe(v => console.log(v))
subject.subscribe(v => console.log(v))
observable.subscribe(subject)

是一个意思,你的代码也可以作为示例代码。 你代码中的 sub.next 就等于我这写的 observable 中的 observer.next 的调用,我这边用的是 RxJS 的老语法,你可以理解成 subject 用来示例多播,而我写的 observable 是一个自定义的 next 触发调用器

tolerious commented 1 year ago

@hijiangtao 感谢感谢,sorry,我昨天没有看到observable.subscribe(subject)这句话,我还在好奇为什么observable变量跟subject变量产生了联系了呢。我看漏了。

hijiangtao commented 1 year ago

@tolerious @hijiangtao 感谢感谢,sorry,我昨天没有看到observable.subscribe(subject)这句话,我还在好奇为什么observable变量跟subject变量产生了联系了呢。我看漏了。

对的,用的最后一行订阅以做的关联

tolerious commented 1 year ago

单播与多播,举个例子,不知是否恰当。 多播:比如,我们上学的时候,英语考试,听力部分,开始考试了,学校统一播放磁带,每个教室听到的内容都是一样的,一题一题往下做,每个教室都是从第一题做到最后一题。 单播:今天学校组织全校大考试,不同年级,高年级上午考的是物理,低年级因为没学物理,所以考数学。等到九点钟,铃声响起,大家统一开始考试,但是有的教室做的是数学,有的教室做的是物理,他们只管铃声响起这个输入,但是却在各自忙各自的事情。