在Observable上使用await时,我应该使用什么而不是toPromise()? [英] What should I use instead of toPromise() when using await on an Observable?
本文介绍了在Observable上使用await时,我应该使用什么而不是toPromise()?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
此页说toPromise已被不推荐!(RxJS 5.5 +)
但我最近一直在使用AngularFire2(当我只想要一个结果时)这样:
This page says "toPromise has been deprecated! (RxJS 5.5+)"
but I've been using it lately with AngularFire2 (when I only want one result) like this:
const foo = await this.afs.doc(`docPath`).valueChanges().toPromise();
我不应该这样做吗?如果没有,那么什么是 await
替代?
Should I not be doing this? If not, what is the await
alternative?
更新:
在下面的答案之后我改变了这个:
After the answer below I've changed this:
const foo = await this.afs.doc(`docPath`).valueChanges().toPromise();
...到此:
const foo = await (new Promise(resolve => this.afs.doc(`docPath`).valueChanges().pipe(first()).subscribe(result => resolve(result))));
有人可以向我解释这是一项改进吗?!好像向后退了一步。
Could someone please explain to me how this is an improvement?! Seems like a step backward to me.
推荐答案
你应该把管道放好!
.pipe(take(1)).toPromise
这篇关于在Observable上使用await时,我应该使用什么而不是toPromise()?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文