Я вроде если новый в Node JS (я использую MongoDB, Экспресс и Мангуст) и у меня есть следующая проблема:Node JS - Обработка несколько запросов (обещание, Блюбердо)
Там есть массив с 10 идентификаторов адресов, и мне нужно проверить, Все адреса находятся в базе данных, прежде чем делать что-то еще. Я знаю, мангуст делает асинхронные запросы, я пытался использовать Bluebird (https://www.npmjs.com/package/bluebird) давать обещания, но до сих пор не повезло:
Здесь пока некоторые atempts:
1-й
var checkIds = function(idsArray){
return new Promise(function(resolve, reject){
var result = undefined;
idsArray.forEach(function(id){
Address.count({_id: id}, function(err, count){
//count is 0 if id does not exist
if(err || !count){
reject(false);
}
});
resolve(true);
});
}
}
2-й
var checkIds = function(idsArray){
return new Promise(function(resolve, reject){
var result = 0;
for(var i = 0; i < idsArray.lenght; i++){
Address.count({_id: idsArray[i]}, function(err, count){
if(err || !count){
reject(false);
}else{
result++;
}
});
}
resolve(result == 10 ? true : false);
});
}
Даже если массив содержит только идентификаторы возвращение обещания всегда неопределенных для является первой попыткой t или false для второго.
Может ли кто-нибудь мне помочь?
Он работал очень хорошо, спасибо большое. – fernandodof