【发布时间】:2017-10-06 05:13:59
【问题描述】:
我使用 Angular 2 将数据发布到返回 XML 响应的 URL,我想将数据转换为 JSON,所以我使用 xml2js。
转换进行得很好,但我在“订阅”块中得到未定义的“数据”。如果我在拧,请纠正我,我猜因为 xml2js 是一个异步操作,“数据”是未定义的。那么我该如何处理这种承诺的承诺情况并正确返回转换后的 JSON 数据呢? 代码如下:
this.http.post(this._yourUrl, formdata.toString(), options)
.map(res => {
xml2js.parseString( res.text(), function (err, result) {
console.dir(result); // Prints JSON object!
return result;
});
})
.subscribe(data => {
console.log(data);
});
非常感谢任何帮助。谢谢!
【问题讨论】:
-
尝试添加返回
return xml2js.parseString...或从 map lambda 方法中删除大括号 -
CriPstian,我已经尝试向 xml2js.parseString 添加返回,它返回一个 SAXParser 对象。删除大括号会导致编译错误。
标签: json angular promise xml2js