2014-10-16 2 views
0
repeat(1000, function() { 
     console.log("REPEAT"); 
     var i = 1; 
     var max = 1; 
     var mS = ini.parse(fs.readFileSync(__dirname + '/XXX/Temp/MS.ini', 'utf-8')); 
     var array = new Array(); 
     while(i<=max){ 
      if(typeof mS[i] != 'undefined'){ 
       if(mS[i]['10'] == true){ 
        array.push(i); 
        console.log(array); 
       }else{ 
        console.log("ERROR"); 
       } 
       i++; 
       max++; 
      }else{ //if undefined 
       if(mS[i+1] == 'undefined' && mS[i+2] == 'undefined') i++; 
       else{ i++; max++; } 
      } 
     }//while 
    }); 

Он работает без функции повторения. (модуль waitjs)
Также повторяется работа без цикла while.
Я пытаюсь примириться с node.js (один поток). Но я не знаю, где ошибка?Nodejs while loop не работает

+0

Определить, что «не работает». –

+0

повторять один раз –

ответ

0
var i = 1; 
var max = 1; 
while(i<=max){ 

Это условие действительно только один раз.

Update (из-за @ user949300 комментариев):

Сколько раз ваш цикл выполняется, зависит от ини файла. Я рекомендую вам ввести код в debugger.

+0

Он увеличивает приращение i ++ и max ++ _most времени_ во внутреннем коде, но есть один путь, где он только увеличивает i ++. – user949300

+0

Вы правы. Хотя это может привести его к причине. Я уточню свой ответ. –

+0

в то время как цикл работает четко без повторной функции. Он проверяет файл .ini, если есть заголовок, ill continue (увеличение max). Я не знаю, сколько заголовков в файле .ini. Но его не касается цикла while –

Смежные вопросы