-3
나는 코드 조각이 :자바 스크립트 계속 foreach는
var a = false;
function wait(milliseconds, async) {
if(!async) {
setTimeout(function() {
console.log('Sync timer done.');
a = true;
return true;
}, milliseconds*1000);
}
(...)
f_recipe.forEach(function(item, index) {
if (obj['actual_step'] != 0 && obj['actual_step'] != index) {
e = "Desync";
throw e;
};
console.log("Step: " + obj.actual_step);
if(item.substr(item.length - 6) != "false)"){
if (eval(item)) {
obj['actual_step']++;
}
} else {
eval(item);
var ival = setInterval(function(){
if(a) {
console.log('do the next thing');
clearInterval(ival);
}
}, 1000);
}
});
을하지만 난에 도착하면 (간격 완성은)는 foreach 루프가의 다음 요소로 계속되지 않습니다 '다음 일을' 정렬. 'a'는 타임 아웃 후 (JS에서 동기 대기의 종류) true로 설정됩니다. f_recipes는 함수 호출을 포함하는 문자열 배열입니다 (예 : 'wait (20, false)').
어떻게 작동합니까?
I 돈을 인터벌의 기능이 당신이 기대하는 컨텍스트를 가질 것이라고 생각하지 않습니다. – DBS
'a' 란 무엇입니까? 설정되는 곳은 어디입니까? 이 코드가 해독을 기대하기보다는 어떻게해야하는지 설명하십시오. – JLRishe
코드가 수행해야 할 작업이 무엇인지 명확하게 알 수는 없지만이 작업이 잘못된 접근이라고 확신합니다. – JJJ