Javascript Sailsjs-返回res.json()后继续执行;

Javascript Sailsjs-返回res.json()后继续执行;,javascript,node.js,sails.js,Javascript,Node.js,Sails.js,即使条件为true并执行return res.json(),它也会继续执行 _.each(rooms, function(room){ if(room.users.length == users.length) { return res.json(room); // <-- returns but still continuous execution } }); \每个(房间、功能(房间){ if(room.users.length==users.leng

即使条件为true并执行return res.json(),它也会继续执行

_.each(rooms, function(room){
    if(room.users.length == users.length) {
        return res.json(room); // <-- returns but still continuous execution
    }
});
\每个(房间、功能(房间){
if(room.users.length==users.length){

返回res.json(room);//您应该先断开循环,然后返回
res.status(200)。json(room)
您应该先断开循环,然后返回
res.status(200)。json(room)
如中所述,您可以通过返回
false
退出每个
循环

_.each(rooms, function(room){
    if(room.users.length == users.length) {
        res.json(room);
        return false;
    }
});
如果这不起作用,并且您使用了underline.js,请参阅哪个建议使用
。其中
return false
起作用(而不是
。each
)。因此

如中所述,您可以通过返回
false
退出
每个循环

_.each(rooms, function(room){
    if(room.users.length == users.length) {
        res.json(room);
        return false;
    }
});
如果这不起作用,并且您使用了underline.js,请参阅哪个建议使用
。其中
return false
起作用(而不是
。each
)。因此


你可以考虑在下划线/LoasyAPI中使用不同的函数,例如,查找似乎适合你正在做的事情:

var room = _.find(rooms, function(room){
  return room.users.length == users.length;
});
res.json(room);

你可以考虑在下划线/LoasyAPI中使用不同的函数,例如,查找似乎适合你正在做的事情:

var room = _.find(rooms, function(room){
  return room.users.length == users.length;
});
res.json(room);

谢谢你的快速回复,但是作为一个回调函数,break在那里不起作用。:(谢谢你的快速回复,但是作为一个回调函数,break在那里不起作用。:(这太棒了。:)我更改了我的代码。这太棒了。谢谢。这太棒了。:)我更改了我的代码。这太棒了。谢谢