i´m trying create hook loop on each result response, find user based on current object , attach attribute final response. however, async calls not letting me send right response:
board.afterremote('find',function(context,boards,next){ var users = []; context.result.admin =[]; var user = app.models.user; context.result.foreach(function(result){ user.findone({where:{id:result.adminid}},function(err,user){ result.admin = user; }); }); console.log("result: "+json.stringify(context.result)); next(); });
how can able add user each result on context.result ?
is user.findone
, asynchronous operation? if so, recommend using async control flow library async iterate on result , perform asynchronous action on each item. this:
board.afterremote('find',function(context,boards,next){ async.each(context.result, function(result, callback) { user.findone({where:{id:result.adminid}},function(err,user){ result.admin = user; callback(err) // done iteration }); }, function(err) { // called once every item has been iterated on console.log("result: "+json.stringify(context.result)); next(); }); });