node.js function should only return after mongodb query finished -
i'm trying value returned function executes mongodb query. problem function returns nothing because query isn't finished before returns.
if try console.log(checkchickenvalue(2)); example undefined back. here relevant function:
function checkchickenvalue(chickenid) { mongoclient.connect(url, function(err, db) { var cursor = db.collection('games').find({}, { limit : 1, fields : { _id : 1 }, sort : { _id : -1 } }).toarray(function(err, docs) { var id = docs[0]._id; var test = db.collection('games').findone({ _id : id }, function(err, result) { switch(chickenid) { case 1: complete(result.chicken1.value); break; case 2: complete(result.chicken2.value); break; case 3: complete(result.chicken3.value); break; case 4: complete(result.chicken4.value); break; case 5: complete(result.chicken5.value); break; case 6: complete(result.chicken6.value); break; case 7: complete(result.chicken7.value); break; case 8: complete(result.chicken8.value); break; } }); }); }); function complete (value) { return value; } }; how can let function wait until complete() called?
thanks in advance help!
you'll need return result via callback. add 'callback' parameter function, representing function called when result ready.
function checkchickenvalue(chickenid, callback) { then when have result, return via callback:
switch(chickenid) { case 1: callback(complete(result.chicken1.value)); then, use function, this:
checkchickenvalue(2, function(result){ console.log(result); });
Comments
Post a Comment