我沒有找到我需要做的事情,所以我要求你的幫助。我實際上正在做一個循環來獲取所有Docker機器,但有時候由於模糊的原因,機器「未定義」,並在一段時間後運行或停止。How to say在Javascript中重新啓動循環
我想要做的就是把一個東西放在我的代碼中(我把它放在代碼中),它停止所有的循環並重新啓動它。
getInfosMachines = Meteor.bindEnvironment(function(){
//console.log("listener running");
//clean the 2 arrays
changeSpotted = false;
stateLastCheckMachine.length = 0;
stateDockerLastCheckMachine.length = 0;
InfosMachines._ensureIndex({ "idMachine": 1});
//add the collection value in the array
InfosMachines.find().forEach(Meteor.bindEnvironment(function(mch){
stateLastCheckMachine.push(mch.stateMachine);
}));
//take the actual values
Machine.list({ inspect: true },Meteor.bindEnvironment(function (err, machines){
machines.forEach(Meteor.bindEnvironment(function(machineInfo){
if(typeof machines === "undefined"){
sleep(2000);
//here
}else{
stateDockerLastCheckMachine.push(machineInfo.state);
}
}));
}));
(是的,有是不是所有的代碼,但它在這裏,我需要一些幫助) 謝謝你的幫助
[編輯]謝謝大家誰幫助我,我從所有的學習你的 !
沒有關鍵字或辦法做到它會自動。你需要自己動手做 – Weedoze
如果我正確解釋你的問題,你想「等待」,直到所有的機器都定義好了嗎?如果是這樣的話,我會在while循環中調用['machines.every'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every),直到所有機器被定義。之後,你可以調用'machines.forEach'。 –
是的,但如何編碼這樣的東西? @ Weedoze – Jerome