RxJS取消订阅ID

时间:2016-10-17 20:33:34

标签: rxjs

取消订阅后,我需要调用一个最初在数据中发送的id的函数。这样做的正确方法是什么?

它是一个嵌套的observable,如下面的代码片段所示。

Observable.create(subscriber => {
    const myData = nested.getData
        .map(x => x > 1)
        .subscribe(subscriber);

    return () => {
        myData.unsubscribe();
        callWithIdThatIsInData({id:123})
    };
})

取消订阅时,我需要使用嵌套的observable中发送的属性调用WithIdThatIsInData()。

有人能指出我正确的方向吗?

1 个答案:

答案 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));