var async = require('async');
function callbackhandler(err, results) {
console.log('It came back with this ' + results);
}
function takes5Seconds(callback) {
console.log('Starting 5 second task');
setTimeout(function() {
console.log('Just finshed 5 seconds');
callback(null, 'five');
}, 5000);
}
function takes2Seconds(callback) {
console.log('Starting 2 second task');
setTimeout(function() {
console.log('Just finshed 2 seconds');
callback(null, 'two');
}, 2000);
}
async.series([takes2Seconds(callbackhandler),
takes5Seconds(callbackhandler)], function(err, results){
console.log('Result of the whole run is ' + results);
})
Wyjście wygląda jak poniżej:node.js async.series jest takie, jak powinno działać?
Starting 2 second task
Starting 5 second task
Just finshed 2 seconds
It came back with this two
Just finshed 5 seconds
It came back with this five
Spodziewałem funkcję takes2Second aby całkowicie zakończyć przed rozpoczęciem takes5Second. Czy to powinno działać. Proszę daj mi znać. Ostatnia funkcja nigdy nie działa. Dzięki.
James, dzięki za jasnego wyjaśnienia na to, co się dzieje. Działa po tym, jak wprowadziłem te zmiany zgodnie z sugestią. Czy możliwe jest przekazanie argumentów do tych funkcji? – voicestreams
Przy dalszym czytaniu dokumentów, wygląda na to, że powinienem użyć async.apply do przekazania argumentów funkcji. – voicestreams