我有一个订阅流的 Web 组件。
由于每次显示 Web 组件时都会重新创建它,因此我必须清理订阅者并重做它。
现在我正在将所有订阅者添加到列表中,并且removed()
我正在执行生命周期方法:
subscriptions.forEach((sub) => sub.cancel());
现在,问题是:当 web 组件不显示时,没有人在听流。问题是组件在未显示时缺少数据/事件。
我需要的是缓冲。注册监听器时,需要立即缓冲和发送事件。根据文档,在注册监听器之前会发生缓冲:
控制器将缓冲所有传入事件,直到订阅者注册为止。
这可行,但问题是侦听器会在某些时候删除并重新注册,并且看起来这不会触发缓冲。
似乎缓冲只发生在最初,即使所有听众都走了,也不会在以后发生。
所以问题是:在这种听众可能会来回走动的情况下,我该如何缓冲?