取消订阅可观察对象的承诺

6

如果将observable转换为promise,我该如何取消订阅? 我在Angular 2中使用RxJS

import 'rxjs/add/operator/toPromise';

return this.http.get(this.heroesUrl)
                  .toPromise()
                  .then(this.extractData)
1个回答

16

如果你订阅(subscribe)了一个可观察对象(Observable),那么就有可能对其进行取消订阅(unsubscribe)

当你返回Promise时(这里似乎你返回的是Promise-不是Observable),通常情况下你不会对其进行订阅。 对吧?那么你也不能对它(Promise)进行取消订阅。


5
如何取消订阅 Observable.fromPromise() - realappie
4
@Abdel: 退订是自动的。如果你查看Observable.fromPromise()的源代码,你会发现在观察者中调用了onCompleted()函数。https://github.com/Reactive-Extensions/RxJS/blob/master/src/core/perf/operators/frompromise.js - Maxime Leprince
@MaximeLeprince 这是否意味着承诺也可以在技术上被取消? - realappie
@Abdel:不行,因为当你调用subscribe时,Promise就会被触发。接下来,如果你从Observable中取消订阅,你可能无法得到结果,但Promise仍将被计算。 - Maxime Leprince

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接