Angular 如何在一个数组中基于ID组合两个观察值?
由于其他帖子的帮助,我正在使用Angular 如何在一个数组中基于ID组合两个观察值?,angular,rxjs,Angular,Rxjs,由于其他帖子的帮助,我正在使用combinelatetest将多个可观察到的结果添加到单个订阅中,以获得巨大成功,但我找不到这个问题的答案 我试图根据数组中的唯一id将一个可观察对象映射到另一个可观察对象。因此,我有两个API: 导出用户界面{ id:string, 名称:string, } 及 导出接口规则{ id:string, 用户:阵列 } 我希望能够结合起来: 导出用户界面{ id:string, 名称:string, 规则_id:string, } 或者可能 导出用户界面{ i
combinelatetest
将多个可观察到的结果添加到单个订阅中,以获得巨大成功,但我找不到这个问题的答案
我试图根据数组中的唯一id将一个可观察对象映射到另一个可观察对象。因此,我有两个API:
导出用户界面{
id:string,
名称:string,
}
及
导出接口规则{
id:string,
用户:阵列
}
我希望能够结合起来:
导出用户界面{
id:string,
名称:string,
规则_id:string,
}
或者可能
导出用户界面{
id:string,
名称:string,
规则:数组
}
下面是我目前的代码
const result$=CombineTest([users$,rules$])。管道(
映射(([用户,规则])=>{
返回users.map(user=>{
const rulesfourser=rules.filter(rules=>rules.users.includes(user.id))
返回{
…用户,
规则:RulesFruser,
}
})
})
);
并有以下错误:
错误TS2345:类型为“string”的参数不可分配给类型为“never”的参数
我现在意识到,多亏了欧文·开尔文,我不应该在预期数组中的类型中包含“字符串”:
export interface user {
id: string,
name: string,
rules: Array <{
}>
}
导出用户界面{
id:string,
名称:string,
规则:数组
}
我不想撒谎,不知道为什么,但非常感谢 你能补充一下到目前为止你已经尝试过的吗?或者您当前的实现出了什么问题?当然;对不起,我应该这么做的。编辑了原始帖子。你能分享一下你是如何定义
用户$
和规则$
的吗谢谢你的回复。不确定您的意思-它们是API调用。问题是否可能是因为并非所有规则响应都具有用户ID?这将有助于确定对象类型是如何返回的,如果您遇到类型错误,则很可能是源于响应对象(用户和规则)