RxJS如何观察取消承诺?

时间:2018-03-24 07:36:38

标签: javascript rxjs

  • 据我所知,我们无法取消承诺

但是当承诺包含RxJS Observables时。即使流处于活动状态,我也可以取消订阅流。观察者如何能够做到这一点?

1 个答案:

答案 0 :(得分:1)

承诺实际上没有被取消,rxjs只是忽略了它的结果。你可以很容易地尝试一下:

const promise = new Promise(resolve => {
  setTimeout(() => {
    console.log("Resolving");
    resolve(42);
  }, 2000);
});

const obs$ = Rx.Observable.fromPromise(promise);
const sub = obs$.subscribe(console.log);
setTimeout(() => sub.unsubscribe(), 1000);

你会在控制台中看到Resolving,但是没有来自observable的值。