Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对订阅()和取消订阅()的操作_Javascript_Rxjs_Observable_Rxjs5_Subject - Fatal编程技术网

Javascript 对订阅()和取消订阅()的操作

Javascript 对订阅()和取消订阅()的操作,javascript,rxjs,observable,rxjs5,subject,Javascript,Rxjs,Observable,Rxjs5,Subject,在RxJS中,我想在一个观察者订阅了一个可观察对象之后,以及当他取消订阅时,采取一些特殊的行动。我当然可以覆盖subscribe()和unsubscribe()方法,但这似乎是个问题。 在创建observable的过程中,是否有一种方法可以提供在有人订阅/取消订阅时调用的回调? 比尔, 丹尼尔这就是为什么。您可以使用指定的附加/分离处理程序创建自己的可观察对象,甚至只需另外两行代码即可包装现有的可观察对象 const obs=Rx.Observable.create(Observable=>{

在RxJS中,我想在一个观察者订阅了一个可观察对象之后,以及当他取消订阅时,采取一些特殊的行动。我当然可以覆盖
subscribe()
unsubscribe()
方法,但这似乎是个问题。 在创建observable的过程中,是否有一种方法可以提供在有人订阅/取消订阅时调用的回调? 比尔, 丹尼尔

这就是为什么。您可以使用指定的附加/分离处理程序创建自己的可观察对象,甚至只需另外两行代码即可包装现有的可观察对象

const obs=Rx.Observable.create(Observable=>{
console.log('attach');
//如果要包装另一个可观察对象,请调用:
//const subs=other.subscribe(观察者);
return()=>{
//subs.unsubscribe();
console.log('detach');
};
});
log('subscription1');
常量subscribtion1=obs.subscribe(()=>{});
log('subscription2');
常量subscribtion2=obs.subscribe(()=>{});
设置超时(()=>{
log('subscribtion1.dispose()');
subscribtion1.unsubscribe();
}, 500);
设置超时(()=>{
log('subscribtion2.dispose()');
订阅2.取消订阅();
}, 1000);

我肯定还不喜欢反应式编程。非常感谢你的解释。