什么时候将可观察量更改为承诺是有益的



我正在使用 Angular 2,我想知道是否有人可以解释何时将 Observable 转换为承诺是有益的情况?

前任。 Rx.Observable.toPromise()

我知道承诺和可观察性之间的区别。同样,我只是好奇toPromise()操作员会在什么情况下派上用场。

谢谢:)

显而易见的情况是,当您被强加一个 API 时,该 API 仅与承诺接口,该 API 的一些输入作为可观察量获得。如果满足所有这些条件,那么您必须将可观察量转换为承诺。

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

因此,使用 .toPromise 的主要原因是当您实际上别无选择并且必须转换时。

A 承诺只触发一次。因此,将可观察量转换为承诺的第一个要求是可观察量只发出一次(或者你只关心第一次发射)。

promise API 比可观察量更简单——基本上只是thencatch,它很容易从这些分支中挂起额外的then分支,而对于可观察量,你必须订阅,然后可能担心取消订阅。

您可能还具有带有期望承诺的下游代码,因此正如另一个答案所述,您需要转换为承诺才能与之交互。

最新更新