gpt4 book ai didi

angular - combineLatest 不适用于 promise

转载 作者:行者123 更新时间:2023-12-01 21:23:39 26 4
gpt4 key购买 nike

我想执行一些顺序代码,但我无法从 combineLatest 中提取数据

const { datosPersona, participante } = await combineLatest(
this.store.select('datosPersona'),
this.store.select('participante')
).pipe(
map((data) => ({ datosPersona: data[0], participante: data[1] }),
).toPromise();

最佳答案

当您使用 .toPromise() 时,流必须已结束才能将其转换为 promise 并让应用程序继续进行。当 Observable 是长期存在的(就像您拥有的那个)时,它永远不会解析。

尝试使用 take 运算符来完成流。

import { take } from 'rxjs/operators';
.....
const { datosPersona, participante } = await combineLatest(
this.store.select('datosPersona'),
this.store.select('participante')
).pipe(
map((data) => ({ datosPersona: data[0], participante: data[1] }),
take(1), // take the first emission and only the first one
).toPromise(); // now it can be converted to a promise since the stream finished

关于angular - combineLatest 不适用于 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63456743/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com