gpt4 book ai didi

angular - 将参数传递给 withLatestFrom 函数

转载 作者:太空狗 更新时间:2023-10-29 18:29:12 25 4
gpt4 key购买 nike

我正在建立商店行为。我的商店模型如下所示:

{
entities: {[n:number]: Client},
ids: number[],
}

我从后端获取符合给定条件的 ID。然后我需要从后端获取那些尚未存储的实体。但我不知道如何将获取的 ID 传递给 withLatestFrom 函数?

const params = {
conditions,
fields: ['id']
};
this.apiService.getList(params)
.pipe(
map(resp => {
const ids: number[] = [];
resp.map((item: Client) => {
ids.push(+item.id);
});
return ids;
}),
withLatestFrom(this.checkEntities()), // how to pass ids ?
tap(resp => {
patchState({
entities: resp[1],
ids: resp[0],
loading: false
});
})
);

private checkEntities(ids: number[]) {
const params: ApiWyszukiwarka = {
conditions: {id: ids},
fields: 'all'
};
return this.apiService.getList(params);
}

或者我做错了什么?

最佳答案

只是不要使用 withLatestFrom 并改用 concatMapwithLatestFrom 对来自其源 Observable 的每个发射调用其回调,同时保持订阅作为参数传递的所有 Observables,但这不是您所需要的。您只想在获得 ID 列表后调用 this.checkEntities(),然后创建一个新的 Observable 并订阅它。

所以使用 concatMap 你会得到这样的东西:

map(resp => {
...
return ids;
}),
concatMap(ids => this.checkEntities(ids))

关于angular - 将参数传递给 withLatestFrom 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51080175/

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