Node.js
Synchroon versus asynchroon programmeren in nodejs
Zoeken…
Async gebruiken
Het async-pakket biedt functies voor asynchrone code.
Met de automatische functie kunt u asynchrone relaties tussen twee of meer functies definiëren:
var async = require('async');
async.auto({
get_data: function(callback) {
console.log('in get_data');
// async code to get some data
callback(null, 'data', 'converted to array');
},
make_folder: function(callback) {
console.log('in make_folder');
// async code to create a directory to store a file in
// this is run at the same time as getting the data
callback(null, 'folder');
},
write_file: ['get_data', 'make_folder', function(results, callback) {
console.log('in write_file', JSON.stringify(results));
// once there is some data and the directory exists,
// write the data to a file in the directory
callback(null, 'filename');
}],
email_link: ['write_file', function(results, callback) {
console.log('in email_link', JSON.stringify(results));
// once the file is written let's email a link to it...
// results.write_file contains the filename returned by write_file.
callback(null, {'file':results.write_file, 'email':'[email protected]'});
}]
}, function(err, results) {
console.log('err = ', err);
console.log('results = ', results);
});
Deze code had synchroon kunnen worden gemaakt door de get_data
, make_folder
, write_file
en email_link
in de juiste volgorde aan te email_link
. Async houdt de resultaten voor u bij en als er een fout is opgetreden (eerste parameter voor callback
ongelijk aan null
), stopt de uitvoering van de andere functies.
Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow