2017-01-04 5 views
0

私はコードを持っていて、私はループのためにbreakしようとしていますが、できません。それがifの中にある理由ですか、それでは、他の方法は何ですか?ifのためにforループを中断できませんか?

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)); 
+0

これはコールバック関数です。 –

+0

ああ、Googleにはわからないのは残念です。 –

+0

@PraveenKumarが真を返すことは私にとってはうまくいかない。それだけでそのことを続けています。 –

答えて

1

あなたのブレークはクロージャーコールバック内にありますが、あなたが試みていることは不可能です。ループ時にコールバックは呼び出されません。たとえそうであったとしても、それは別のレキシカルスコープであり、ループを壊すためのアクセスを失います。

関連する問題