rxjs - 如何根据返回的数据类型将 ASP.Net Core api 返回值路由到适当的 observable
问题描述
我创建了一个带有 Angular 7 前端的 ASP.NET Core Web Api 后端。Api 中的一种方法可以将对象或数组返回给 Angular 服务。如何根据返回的数据类型路由到特定的 observable?我是 Angular 的菜鸟,因此我们将不胜感激。
Angular service call to Api:
getLinksFromSitus(situs: any) {
this.http.post(this.baseUrl + 'getLinksFromSitus', situs).subscribe(data =>
this.apiData.next(data)
);
}
Portion of Web Api that returns array if more than one APN present:
// if more than one item in list, get status information for each and return list to user to select appropriate apn
if (propApn.Count > 1)
{
return Ok(propApn);
}
Portion of same method to return object if only one value for APN:
var resultsModel = new Results
{
ArcGisLink = arcGisLink,
HistInfoLink = histInfoLink,
PropInfoLink = propInfoLink
};
return Ok(resultsModel);
解决方案
你不能这样做。Typescript 只能在构建时基于静态分析键入内容,您的描述将要求 Typescript 在构建时知道您的 API 调用的结果,但它不会这样做。
您可以做的最好的事情是表明您的 API 调用可以返回您的两个:
public myApiFunc(req: MyRequestModel): Observable<any>
但这仍然需要您弄清楚在运行时返回的类型。
推荐阅读
- pytest - pytest.raises 上下文管理器中未捕获异常值
- javascript - 仅通过一个对话框提示实现从浏览器到设备的自动保存
- css - Bulma 盒子组件忽略 css 高度
- c# - 激活 Autofac .NET Core Web API 时检测到循环组件依赖项
- webgl - 在 gl.drawArraysInstanced 中绘制特定实例
- python - 如何删除熊猫python中的行?
- dockerfile - Dockerfile tar 错误: tar: Cowardly refusing to create an empty archive
- prometheus - 使用 Spring-kafka 在 GC/消费者重新平衡时清理 Kafka Metric 计量器
- .net - 使用 Docker 映像本地运行 AWS Serverless .NET 项目失败
- javascript - Nuxt SSR DOMException:无法在“节点”上执行“appendChild”:此节点类型不支持此方法