2014-02-19 2 views
3
var count = 0; 

async.whilst(
    function() { return count < 5; }, 
    function (callback) { 
     count++; 
     setTimeout(callback, 1000); 
    }, 
    function (err) { 
     // 5 seconds have passed 
    } 
); 

첫 번째 함수가 처리 할 두 번째 함수에 변수를 전달하는 방법이 있습니다. 예를 들어 :NodeJS async.Whilst

async.whilst(
    // if EOF data will evaluate to false 
    // otherwise, data will be an object 
    function() { var data = processSomeDataSync(); return data }, 
    function (data, callback) { 
     process(data) 
    }, 
    function (err) { 
    } 
); 

답변

5

전체 async.whilst 전화에 새로운 영역을 추가하고 data에게 해당 범위의 지역 변수합니다

(function() { 
    var data = null; 

    async.whilst(
     // if EOF data will evaluate to false 
     // otherwise, data will be an object 
     function() { 
      data = processSomeDataSync(); return data != null; 
     }, 
     function (callback) { 
      process(data) 
     }, 
     function (err) { 
     } 
    ); 
})();