我有一个简单的例子,其中有两个方法创建并返回一个promise。第二个方法buildRedCar()调用第一个方法buildCar(),修改promise返回的值并返回另一个promise。然后,代码调用buildRedCar(),并仅通过控制台记录结果。这在转换为promise时不起作用,但在使用直接可观察对象时它确实起作用。不有效:import*asRxfrom'rx';functionbuildCar():Rx.IPromise{letcar='Car';returnRx.Observable.just(car).toPromise();}functionbuildRedCar(
在我们的应用程序中,我们有很多地方用到:someObservable.take(1).subscribe(onSuccessHandler,onFailureHandler);但是对于订阅,您需要担心在某个时候取消订阅,这并不总是那么简单。我正在考虑将其简化并重写为:someObservable.toPromise().then(onSuccessHandler).catch(onFailureHandler);但是查看toPromise()(here)的实现,我似乎不明白为什么它不关心取消订阅。代码中的注释说不能取消,但我们如何让它像这样泄漏内存(以防我们确实如此)。编辑我想出了一个
我尝试使用来自angularfire2身份验证库的token对我的后端调用进行身份验证。我订阅authState以获取用户token并将其作为RequestOption添加到我的http请求中。如果我在chrome调试器中设置断点,它会成功执行getAuthOptions()中的返回行,但在this.getAuthOptions().toPromise()之后,应用既不调用.then()也不调用.catch()函数。Observable的使用是否有错误?我可以尝试其他方法吗?getPoints():Promise{returnthis.getAuthOptions().toPromis
Thispage说“toPromise已被弃用!(RxJS5.5+)”但我最近一直在使用AngularFire2(当我只想要一个结果时),如下所示:constfoo=awaitthis.afs.doc(`docPath`).valueChanges().toPromise();我不应该这样做吗?如果不是,await替代方案是什么?更新:在下面的答案之后我改变了这个:constfoo=awaitthis.afs.doc(`docPath`).valueChanges().toPromise();...为此:constfoo=await(newPromise(resolve=>this.a