Javascript 在可观察对象上使用wait时,我应该使用什么来代替toPromise()?

Javascript 在可观察对象上使用wait时,我应该使用什么来代替toPromise()?,javascript,angular,promise,rxjs,angularfire2,Javascript,Angular,Promise,Rxjs,Angularfire2,说“toPromise已被弃用!(RxJS 5.5+)”但我最近一直在AngularFire2上使用它(当我只想要一个结果时),如下所示: const foo = await this.afs.doc(`docPath`).valueChanges().toPromise(); 我不应该这样做吗?如果没有,等待的替代方案是什么 更新: 在回答了下面的问题后,我改变了这一点: const foo = await this.afs.doc(`docPath`).valueChanges().toP

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

const foo = await this.afs.doc(`docPath`).valueChanges().toPromise();
我不应该这样做吗?如果没有,等待的替代方案是什么

更新:

在回答了下面的问题后,我改变了这一点:

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

@zero298的可能重复项不要因为两个问题中都出现了
toPromise
而重复投票…@JonasW。你看过复本了吗?“toPromise:现在作为一个永久的方法存在于Observable”我认为这意味着它没有被弃用。您希望我发布一个回答,上面写着“这不是不推荐的”,还是链接到一个问题,这样说就可以了?@zero298这个问题已经有一年了?toPromise将重新运行承诺??我应该使用
pipe(first())
取而代之的是,
Observable
上的
toPromise
方法没有被弃用:请删除关于
toPromise
被弃用的错误声明。除了这个答案之外,我们找不到这个答案。伙计们,
toPromise()
在v7.0中被弃用了: