gpt4 book ai didi

javascript - 从其他可观察对象切换 Rxjs 流

转载 作者:行者123 更新时间:2023-11-30 13:49:19 25 4
gpt4 key购买 nike

我正在开发一个视频播放器,它有两种不同的方式来判断是否应该订阅一个可观察对象。它们是 _videoInfo$ 和 _exit$。它们是在播放器上调用时发出值的流。

我有一个名为 _data$ 的可观察对象,它会发出我需要跟踪的所有值,但我只想在视频播放器播放时订阅它。

我知道以下方法不正确,但它解释了我要实现的目标。它目前不起作用,因为我无法取消订阅 _data$。

 const _data$ = data$.subscribe(event => {
// data I need when video is playing
});

_videoInfo$.subscribe((res): void => {
// when res emits it means a new video is starting
_data$.subscribe();
});

_exit$.subscribe({
next: () => {
_data.unsubscribe(); // this does not work, but i want to unsubscribe here
},
error: () => {},
complete: () => {}
});

如何在 $videoInfo 发出值时订阅 _data$ 并在 _exit$ 发出值时取消订阅?

最佳答案

observable.subscribe() 返回一个 Subscription 对象,您可以使用它来取消订阅。

let subscription;

_videoInfo$.subscribe((res): void => {
// when res emits it means a new video is starting
subscription = _data$.subscribe();
});

_exit$.subscribe({
next: () => {
if (subscription) {
subscription.unsubscribe();
}
},
error: () => {},
complete: () => {}
});

关于javascript - 从其他可观察对象切换 Rxjs 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58585520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com