私はその要求の後にXMLデータを解析して結果を出力しようとしていますが、私は結果の代わりにundefined
を得ています。複数のクラスを持つPromise bluebird
var parseUrl = 'url which returns XML as response';
var request = Promise.promisify(require("request"));
var xml2js = Promise.promisify(require('xml2js').parseString);
Promise.promisifyAll([request, xml2js]);
request({url: parseUrl, json: true}).then(function(data){
if (data.body){
return data.body;
} else {
return error.throw('Failed to parse body from response');
}
}).then(function(data){
xml2js(data, function(err, result){
if (!err){
return result;
} else {
return error.throw('Failed to read converted body from response');
}
});
}).then(function(data){
console.warn(data);
}).catch(function(e){
console.log(e.message);
});
を使用する必要はありません:true'のが、data.body''でXMLを期待しています。そうですか? –
それはやや独創的ではないでしょう。 –
あなたはpromisified 'xml2js'にコールバックを渡す必要はありません。さらに重要なことは、' then'コールバックから結果の約束を '返す '必要があることです! – Bergi