Я не понимаю, почему Promise.promisify Bluebird не обещает функцию запроса, потому что она выполняет обратный вызов, как большинство функций стиля узла. Может ли это быть метод агрегации Mongoose(), который нарушает код?Bluebird promisify not wrapping node style function
function query(callback) {
model.aggregate([{$sort:{a: -1}}], function(err, items) {
if (err) {
console.log(err);
}
let mostA = items[0].a;
Caller.aggregate([{$sort:{b: -1}}], function(err, items) {
if (err) {
console.log(err);
}
let mostB = items[0].b;
callback({mostA: mostA, mostB: mostB});
});
});
};
let most = Promise.promisify(query);
most()
.then((data) => {
// do something
})
.catch((err) => {
console.log('err:', err); // I always get an error.
});
Это не стиль узел обратного вызова ??? – Bergi
Если вы пишете эту функцию самостоятельно, вы скорее должны обещать эти методы 'aggregate'. – Bergi
Да, 'model.aggregate()' то, что нужно пролонгировать, а не 'query()'. –