Tôi đang sử dụng mô-đun nút sử dụng quy ước gọi lại nút. Tôi muốn chuyển đổi mô-đun này thành một API sử dụng lời hứa Bluebird. Tôi không nhận được làm thế nào để làm điều này.Lời hứa Bluebird `promisifyAll` không hoạt động - không thể đọc thuộc tính` then`
Dưới đây là chức năng gọi lại kiểu nút của tôi. Tôi muốn chuyển đổi nó thành lời hứa của bluebird.
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;
}
});
tôi đã cố gắng theo cách này sử dụng PromisifyAll
nhưng nó không làm việc:
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);
});
Tôi nhận được then is not a function
lỗi. Làm thế nào tôi có thể sửa chữa nó?
Tôi đã sử dụng promisifyAll với yêu cầu và không yêu cầu tôi thêm hậu tố Async. Có lý do cụ thể nào không? – Antoine
@AnthonyMayfield Tôi nghĩ mô-đun yêu cầu theo mặc định được thực hiện bằng các khái niệm hứa hẹn. Tôi đã sử dụng .theo yêu cầu mà không cần quảng cáo –