何时将Observable更改为promise是有益的

时间:2016-06-03 21:51:29

标签: javascript angular rxjs

我正在与Angular 2合作,我想知道是否有人可以解释何时将转换和Observable转换为承诺有利的情况?

实施例。 Rx.Observable.toPromise()

我知道承诺与之间的区别观测。同样,我只是好奇toPromise()运算符会派上用场的情况。

谢谢:)

2 个答案:

答案 0 :(得分:2)

显而易见的情况是,当您施加API时,该API仅与promises接口,您获得的API的一些输入作为可观察对象。如果满足所有这些条件,那么您必须将您的observable转换为promise。

你如何得到一个只代表一个值的观察者,或者你只关心最后一个值的观察者?嗯,同样的事情。您的observable可能由强制API返回,该API仅与observables等接口。

所以使用.toPromise的主要原因是当你实际上没有选择并且必须转换时。

答案 1 :(得分:0)

承诺只发射一次。因此,将observable转换为promise的第一个要求是observable只发出一次(或者你只关心第一次发射)。

promise API比observable更直接 - 基本上只是thencatch,很容易挂起其他then分支,而对于observable,你必须订阅,然后可能担心取消订阅。

您可能还有期望承诺的下游代码,因此另一个答案指出,您需要转换为承诺与其进行交互。