в socket.io я пытаюсь проверить, достаточно ли легко существует пользователь, куда я могу просто позвонить
if(checkUserExist(uid) == 'true'){
success();
}else{
failure();
};
поэтому я понял, что мне нужно использовать обещания, потому что функция, которую я использую для получения информации из базы данных, является асинхронной, поэтому я делаю это
function checkUserExist(uid){
return new Promise(resolve => {
webUser.findOne({ _id: uid }, function(err, uid) {
if(uid){
console.log("USER EXISTS")
resolve('true')
}if(!uid){
console.log("USER NO REAL")
resolve('false')
}
})
});
и когда я пытаюсь использовать такую функцию
socket.on('getAgents',function(uid){
console.log(checkUserExist(uid))
if(checkUserExist(uid) == 'true'){
console.log('user does exist getting agents')
agentList.find({}, function(err, docs) {
docs.forEach(function(d) {
socket.emit('newAgent', d.agentName)
});
});
}else if(checkUserExist(uid) == 'false'){
console.log('invalid uid ' + uid)
socket.emit('serverError', 'Invalid UID '+ uid)
}
})
возвращаемое значение Promise { <pending> }
Я не уверен, что делать, я думал, что это достаточно простая задача, но, очевидно, я пока не знаю, как это сделать. есть кто-нибудь, кто может мне помочь.
Обещания - это довольно новая концепция для меня, и я до сих пор не до конца понимаю, как они работают, может быть, стоит использовать библиотеку типа Promisify?
Спасибо за тонну:)