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);              
 });