2017-12-03 10 views
0

xml2jsを使用してXML文字列をJSONに変換しようとしていますが、別のコンポーネントで結果を送信して購読する必要があります。xml to jsonを解析してAngular4で購読する

getLastWeekSnow = function(){ 
let headers = new Headers(); 
headers.append('Access-Control-Allow-Origin', '*'); 
headers.append("Authorization", "Basic " + btoa('user' + ":" + 'password')); 
headers.append('Content-Type' , 'application/x-www-form-urlencoded');  
return this.http.get(`${this.APIUrl}`, {headers:headers}) 
.map(res => { 
    xml2js.parseString(res.text(), function (err, result) { 
    console.dir(result); //Prints JSON object! 
}); 
}) 
.subscribe(data => { 
console.log(data); //Undefined !   
}); 
} 

のでconsole.dir(reultsが)私は必要なものを私に戻って与えるが、サブスクライブ(にconsole.log(データ))で、私は未定義得ます。

なぜが未定義に登録されていますが、.mapで正しいオブジェクトが得られますか?

答えて

2

それ以外の場合は私のためにそれを解決し

getLastWeekSnow = function(){ 
let headers = new Headers(); 
headers.append('Access-Control-Allow-Origin', '*'); 
headers.append("Authorization", "Basic " + btoa('user' + ":" + 'password')); 
headers.append('Content-Type' , 'application/x-www-form-urlencoded');  

return this.http.get(`${this.APIUrl}`, {headers:headers}) 
.map(res => { 
    let data; 
    xml2js.parseString(res.text(), function (err, result) { 
    console.dir(result); //Prints JSON object! 
    data = result 
}); 
return data; 
}) 
.subscribe(data => { 
console.log(data); //Undefined !   
}); 
} 
+1

を購読することができない、あなたのデータを返すようにしてください。ありがとうございました ! – KLTR

+0

問題のある人は、答えとしてマークすることを忘れないでください! –

関連する問題