angular - 如何通过 Angular 中的回调函数格式化 API 响应
问题描述
我想通过回调函数格式化我的 API 响应并获取角度订阅中的数据
我用过mergemap,但没用
this.http.get('https://some.com/questions.xml', {headers, responseType: 'text'})
.mergeMap(
res => xml2js.parseString(
res,
{ explicitArray: false },
(error, result) => {
if (error) {
throw new Error(error);
} else {
console.log(result);
return result;
}
}
)
).subscribe(
data => { console.log("response", data); },
error => { console.log(error); }
);
我想在订阅中获取响应 JSON,但我收到 TypeError:您在预期流的位置提供了一个无效对象。您可以提供 Observable、Promise、Array 或 Iterable。
解决方案
就像 xdeepakv 提到的,在使用时mergeMap or switchMap ...etc
,你应该返回一个 promise 或 observable。Whilexml2js.parseString(...)
属于SAXParser
. 因此,您应该使用map
.
或者,您可以查看有关如何转换为承诺的这个stackoverflow 问题。parseString(...)
推荐阅读
- ios - 使用 attributesString 将超链接保留到 UITextView 中的特定单词
- php - Prestashop webservice api用于退货
- php - PHPMailer SH: -t command not found - 通过终端运行脚本
- python - 带有标签和标记的 Python Folium 地图
- arrays - 导出数组
使用 PySpark 键入 csv 而不一一指定它们? - java - 使用 5 个多线程打印数字
- css - 更改同一类 Title 的颜色
- java - 如何将 jdateChooser tpye 转换为(例如:Thu Jul 01 2021 00:00:00 GMT+0700)
- angular - Angular E2E 测试脚本超时
- c - C:如何远程执行命令行程序并从服务器与其交互?