取消订阅后,我需要调用一个最初在数据中发送的id的函数。这样做的正确方法是什么?
它是一个嵌套的observable,如下面的代码片段所示。
Observable.create(subscriber => {
const myData = nested.getData
.map(x => x > 1)
.subscribe(subscriber);
return () => {
myData.unsubscribe();
callWithIdThatIsInData({id:123})
};
})
取消订阅时,我需要使用嵌套的observable中发送的属性调用WithIdThatIsInData()。
有人能指出我正确的方向吗?
答案 0 :(得分:2)
解决方案是在订阅嵌套的observable期间存储与过滤条件匹配的属性。
以下是一个例子:
const nested = Rx.Observable.from([1, 2, 3, 4, 5]);
const stream = Rx.Observable.create((subscriber) => {
const saved = [];
const myData = nested.filter(x => x > 1).subscribe(x => {
subscriber.next(x);
saved.push(x);
});
subscriber.complete();
return () => {
myData.unsubscribe();
//Here you have access to your data
console.log(saved);
}
});
stream.subscribe(x => console.log(x));