代码之家  ›  专栏  ›  技术社区  ›  Jus10

当对可观测数据使用await时,应该使用什么来代替toPromise()?

  •  5
  • Jus10  · 技术社区  · 6 年前

    This page "toPromise has been deprecated! (RxJS 5.5+)" 但我最近一直在用AngularFire2(当我只想得到一个结果时),比如:

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

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

    更新:

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

    const foo=等待此.afs.doc(`docPath`).valueChanges().toPromise();
    

    …对此:

    const foo = await (new Promise(resolve => this.afs.doc(`docPath`).valueChanges().pipe(first()).subscribe(result => resolve(result))));
    

    有人能给我解释一下这是怎么改进的吗?!在我看来是倒退了一步。

    1 回复  |  直到 6 年前
        1
  •  9
  •   Adrian Lemes Caetano    6 年前

    你应该把烟斗放在后面!

       .pipe(take(1)).toPromise