2015-07-08 3 views
0

Я использую модель асинхронного водопада для выполнения функций в последовательности. Однако внутри каждой функции он не выполняет оператор последовательно. Например нижеКак запустить fuction в серии NODEJS

var serviceconfig = loadCsv(); 
callback(null, serviceconfig); 

Я хочу обратного вызова выполнять только тогда, когда функция loadCsv() возвращает значение, но похоже, что это будет продолжать выполнение

apiRoutes.get('/api/:service/:subject', function(req, res) { 

async.waterfall([ 
    function(callback){ 
    var serviceconfig = loadCsv(); 
    callback(null, serviceconfig); 

    }, 
    function(serviceconfig, callback){ 
    console.log("serviceconfig final: " + serviceconfig); 
    callback(null, 'd'); 
    }, 
    function(argd, callback){  

    }], function (err, result) { 

    } 
) 


}); 

ответ

1

Вы могли, если это возможно для вас , отправьте обратный вызов на loadCsv и дайте ему обработать его.

var serviceconfig = loadCsv(callback);

А потом в loadCsv:

function loadCsv(callback) { 
    // code 
    callback(null, result); 
} 
Смежные вопросы