-1
我正在嘗試創建一個鉤子,其中我根據響應循環每個結果,根據當前對象查找用戶並將其作爲另一個屬性附加到最終響應。然而,異步調用不讓我發出正確的響應:從for循環內的回調函數中附加數據Loopback
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();
});
我如何能夠將用戶添加到在context.result每個結果?
Thanka的答案!發現確實是異步操作。我還有一個問題。我還需要在afterRemote回調結束時調用next()函數嗎?或者只是在async.each()的cb中是必要的? –
async.each完成後,您會想調用'next'。傳遞給迭代器的回調讓異步知道這個迭代已完成。一旦所有的迭代完成了你傳遞給async.each的回調函數。那就是你接下來要調用的地方,因爲那是所有迭代都完成的時候。 'async.each(collection,iterator,callback)'我已經更新了答案以顯示它在'afterRemote'回調中的樣子。 – carebdayrvis
非常感謝! –