5
share()
运算符应用于BehaviorSubject。行为主题具有初始值。BehaviorSubject初始值不适用于share()
目标是创建一个共享的订阅。 但是,当BehaviorSubject具有初始值时,此共享订阅似乎不起作用。
获得意想不到的结果。如下图所示
代码:
let subject = new Rx.BehaviorSubject(0);
let published = subject
.do(v => console.log("side effect"))
.share();
published.subscribe((v) => console.log(v+" sub1"));
published.subscribe((v) => console.log(v+" sub2"));
subject.next(1);
结果:
"side effect"
"0 sub1"
"side effect"
"1 sub1"
"1 sub2"
预期结果:
"side effect"
"0 sub1"
"1 sub1" <------------- this is missing from actual result
"side effect"
"1 sub1"
"1 sub2"
那么,如何才能实现“副作用”,“0 SUB1”,“0 SUB2”为了让初始订阅和那么在第一个“下一个”呼叫之后的“副作用”,“1 sub1”,“1 sub2”? –