What should I use instead of toPromise() when using await on an Observable?

 ̄綄美尐妖づ 提交于 2019-12-23 09:14:55

问题


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

Should I not be doing this? If not, what is the await alternative?

UPDATE:

After the answer below I've changed this:

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

...to this:

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.


回答1:


You just should put after pipe!

   .pipe(take(1)).toPromise


来源:https://stackoverflow.com/questions/51677405/what-should-i-use-instead-of-topromise-when-using-await-on-an-observable

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!