Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 如何在一个数组中基于ID组合两个观察值?_Angular_Rxjs - Fatal编程技术网

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?这将有助于确定对象类型是如何返回的,如果您遇到类型错误,则很可能是源于响应对象(用户和规则)