Я пытаюсь использовать Bluebird с мангуста. Вот моя реализация.Выполнение запросов mongoose работает с отражением bluebird
const Bluebird = require('bluebird');
const mongoose = require('mongoose');
const Entity = require('./entity');
mongoose.Promise = Bluebird;
Теперь я пытаюсь сделать что-то подобное.
let promises = [];
promises.push(Entity.findOne({ country: 'HONGKONG' }));
promises.push(Entity.findOne({ country: 'INDIA' }));
promises.push(Entity.findOne({ country: 'THAILAND' }));
Я знаю, что вышеуказанный запрос не имеет смысла. Это просто пример для многих обещаний.
Теперь я пытаюсь реализовать Bluebirds отражать
return Bluebird.all(promises.map(function (promise) {
return promise.reflect();
}))
.then(response => {
console.log(response.filter(r => r.isFulfilled()));
console.log(response.filter(r => !r.isFulfilled()));
}).catch(err=>{
console.log(err);
})
Я получаю ошибку promise.reflect is not a function
Но, когда я делаю это, он прекрасно работает.
promises.push(new Bluebird((resolve, reject) => resolve(Entity.findOne({ country: 'HONGKONG' }))));
promises.push(new Bluebird((resolve, reject) => resolve(Entity.findOne({ country: 'INDIA' }))));
promises.push(new Bluebird((resolve, reject) => resolve(Entity.findOne({ country: 'THAILAND' }))));
Мой вопрос: почему мангуста не выполняет обещание обезьяны синих птиц нормально. Нужно ли явно разрешать каждый запрос с помощью Bluebird?
Спасибо. Он работал как шарм :) – logesh
Добро пожаловать! –