因为if而无法中断循环?

时间:2017-01-04 14:35:39

标签: javascript node.js

我有一段代码,我正在尝试break循环播放,但我无法做到。它是if内部的原因,如果是那么另一种方式是什么?

    var myMessages = [];
    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 });
                            break; //Break Is Here
                        } else {
                            console.log('» Tried to create deposit, but',err);
                            myMessages.push("Problem");
                            res.json({ error: err });                   
                        }
                    }
                }
            });
        } else {
            console.log('» Tried to create deposit, but no bot found(2)');
            myMessages.push("Available bot not found(2)");
        }
    }
    } else {
        console.log('» Tried to create deposit, but no bot found');
        myMessages.push("Available bot not found"); 
    }
} catch(e){
    return res.json({ error: e.message, stack: e.stack });
}
console.log(JSON.stringify( myMessages));

1 个答案:

答案 0 :(得分:1)

你的休息是在一个封闭回调中,你正在尝试的是不可能的。循环时不调用回调。即使它是,它也是一个不同的词法范围,它失去了打破循环的权限。