Я использую модуль node, который использует соглашение об обратном вызове node. Я хочу преобразовать этот модуль в API с помощью Bluebird promises. Я не понимаю, как это сделать.
Ниже приведена функция обратного вызова стиля node. Я хочу превратить его в надежное обещание синей птицы.
var module = require('module'); // for example xml2js, or Mongoose
var parseString = xml2js.parseString;
parseString(xml, function (err, result) { // the regular API
if (err) {
console.log("Error in generation json from xml");
} else {
return result;
}
});
Я пробовал этот путь с помощью PromisifyAll
, но он не работает:
var module = Promise.promisifyAll(require('module')); // for example xml2js
xml2js.parseString(xml)
.then(function (result) {
console.log("result = ", result);
})
.catch(function (err) {
console.err(err);
});
Я получаю ошибки then is not a function
. Как я могу это исправить?