我创建了一个 Observable 并订阅了两次,但更新只针对最后一个订阅者:
import { Observable } from "rxjs";
let observer;
let source = Observable.create(obs => observer = obs);
source.subscribe(m => console.log(`subscribe 1: ${m}`));
source.subscribe(m => console.log(`subscribe 2: ${m}`));
observer.next("hello!:)");
我希望在控制台中看到:
subscribe 1: hello!:)
subscribe 2: hello!:)
但相反,我只收到最后一条消息:
subscribe 2: hello!:)
是否可以对一个活动进行多次订阅?
如果是,该怎么做?
如果将日志添加到回调:
你可以看到它每次都会被调用
subscribe。因此,每次调用都会重写全局变量,其中将存储最后一个值。
可以用方法解决
share在这种情况下,一个观察者将负责所有订阅。
例子
另一种解决方案是
Subject改用Observable.create例子