我这里有一段代码:
for(var i = 0; i < bots.length; i++){
if ( bots[i].getInventory().getItems().length < capacity ){
var executed = false;
bots[i].createDeposit({
steamid: req.query.steamid,
token: req.query.token,
itemsFromThem: uniqueItems,
message: req.query.message,
callback: function( err, dbTradeId ){
if ( !executed ){
executed = true;
if ( !err && dbTradeId ){
res.json({ result: 1, dbTradeId: dbTradeId });
} else {
console.log('» Tried to create deposit, but',err);
res.json({ error: err });
}
}
}
});
} else {
console.log('» Tried to create deposit, but no bot found(2)');
return res.json({ error: 'Available bot not found(2)' });
}
}
问题在于。我有for
循环,但我无法通过if
,但机器人有足够的长度。是这样的,如果一个人会失败,它就不会为别人测试,如果它有这样的方法可以做到这一点,如果一个失败它会尝试另一个,如果它成功,那么它不会尝试。
此致
答案 0 :(得分:0)
return
会破坏你的else语句中的循环。
尝试使用数组添加消息,然后在循环退出后调用该数组。
类似
var myMessages = [];
for(var i = 0; i < bots.length; i++){
if ( bots[i].getInventory().getItems().length < capacity ){
// your code
}else{
myMessages.push("error": bot[i]);
}
}
console.log(JSON.stringify( myMessages));