在Observable上使用wait时,应该使用什么代替toPromise()?

时间:2018-08-03 17:20:52

标签: javascript angular promise rxjs angularfire2

This page"toPromise has been deprecated! (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))));

有人可以向我解释这是一种改进吗?!对我来说似乎是退后一步。

1 个答案:

答案 0 :(得分:4)

您只应该放管子!

   .pipe(take(1)).toPromise