答案 0 :(得分:0)
您是否需要take(1)
取决于getPassengersByBid
的工作。如果此方法返回的Observable仅发出一个项目然后完成,则您无需使用take(1)
,因为它本身就可以完成。例如,httpClient.get()
产生一个next
和一个complete
,因此您不需要将其与take(1)
链接。
如果getPassengersByBid
是一个永远无法完成的无限可观察量,那么如果您只想要一个值,则可以使用take(1)
。
第二件事是您不需要将Observables与Promise一起包装,而只能使用toPromise()
。但是,请注意,使用toPromise()
的源Observable必须完成,并且Promise将使用最新的值进行解析(但是如果您使用take(1)
,则将具有与您所拥有的相同的行为即使使用可发射多个项目的Observables也是如此。