Angular2 HTTP POST 使用 observables 订阅将数据显示为 'undefined'
Angular2 HTTP POST using observables subscribe shows data as 'undefined'
我正在使用 Angular 2 将数据发布到 URL return 返回 XML 响应,我想将数据转换为 JSON 所以我使用 xml2js.
转换进行得很好,但我在 'subscribe' 块中得到 'data' 未定义。如果我有问题请纠正我,我猜是因为 xml2js 是一个异步操作,'data' 是未定义的。那么我如何正确处理这种承诺情况和 return 转换后的 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);
});
非常感谢任何帮助。谢谢!
假设xml2js.parseString
是同步操作,
试试这个:
this.http.post(this._yourUrl, formdata.toString(), options)
.map(res => {
var myRes;
xml2js.parseString( res.text(), function (err, result) {
console.dir(result); // Prints JSON object!
myRes = result;
});
return myRes;
})
.subscribe(data => {
console.log(data);
});
我正在使用 Angular 2 将数据发布到 URL return 返回 XML 响应,我想将数据转换为 JSON 所以我使用 xml2js.
转换进行得很好,但我在 'subscribe' 块中得到 'data' 未定义。如果我有问题请纠正我,我猜是因为 xml2js 是一个异步操作,'data' 是未定义的。那么我如何正确处理这种承诺情况和 return 转换后的 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);
});
非常感谢任何帮助。谢谢!
假设xml2js.parseString
是同步操作,
试试这个:
this.http.post(this._yourUrl, formdata.toString(), options)
.map(res => {
var myRes;
xml2js.parseString( res.text(), function (err, result) {
console.dir(result); // Prints JSON object!
myRes = result;
});
return myRes;
})
.subscribe(data => {
console.log(data);
});