Возник такой вопрос исходящий из логики работы js, не знаю как его обойти
var readMacs = function(collection) {
var macs;
MongoClient.connect('mongodb://127.0.0.1:27017/snmp', function(err, db) {
if (err) throw err;
db.collection(collection).distinct('mac', function(err, docs) {
console.log(docs);
db.close();
return docs;
})
});
};
console.log(readMacs('allowedmacs'));
Вот что возвращает:
undefined
[ '111a.468a.4985',
'12aa.468a.4444',
'14aa.468a.4444',
Т.е. сначала идет console.log(readMacs('allowedmacs')), который возвращает undefined, а потом уже console.log внутри вызова в базе.
Но мне надо вызвать эту функцию несколько раз, присвоить возвращаемое значение в разные переменные и потом использовать их внутри другой функции, как это сделать? Можно вызвать следующую функцию внутри db.collection(collection).distinct('mac', function(err, docs) {}) но мне надо ее пеед этим несколько раз вызвать и использовать несколько переменных.