javascript - 在 Observable 上使用 await 时,我应该使用什么来代替 toPromise()?

标签 javascript angular promise rxjs angularfire2

This page“toPromise 已被弃用!(RxJS 5.5+)” 但我最近一直在使用 AngularFire2(当我只想要一个结果时),如下所示:

const foo = await this.afs.doc(`docPath`).valueChanges().toPromise();

我不应该这样做吗?如果不是,await 替代方案是什么?

更新:

在下面的答案之后我改变了这个:

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))));

有人可以向我解释一下这是如何改进的吗?!对我来说似乎是倒退了一步。

最佳答案

你应该在管道后面放!

   .pipe(take(1)).toPromise

关于javascript - 在 Observable 上使用 await 时,我应该使用什么来代替 toPromise()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51677405/

相关文章:

javascript - promise 链和所有

javascript - Promise 本身是否有一个时间,如果在特定的时间内从未解决,它最终会是 `reject` 本身吗?

node.js - 使用 NodeJS Promise 查询 MongoDB

javascript - 检测触摸事件与点击事件的更好方法

javascript - 在特定页面上显示内容 javascript

angular - 从 Angular 2 FormGroup 获取所有验证错误

ruby-on-rails - Rails 事件模型序列化程序 - 属性别名

java - 在 Android 的 Web View 中没有出现警报?

javascript - Jquery show() 在 Safari 上加载新页面之前不起作用

ios - Angular 2 应用程序 : route content is blank on iOS