Node.js
Synchronous vs. Asynchronous Programmierung in nodejs
Suche…
Async verwenden
Das Paket async stellt Funktionen für asynchronen Code bereit.
Mit der Auto- Funktion können Sie asynchrone Beziehungen zwischen zwei oder mehr Funktionen definieren:
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);
});
Dieser Code könnte synchron erstellt worden sein, indem einfach get_data
, make_folder
, write_file
und email_link
in der richtigen Reihenfolge email_link
werden. Async verfolgt die Ergebnisse für Sie und wenn ein Fehler aufgetreten ist (erster Parameter des callback
ungleich null
), wird die Ausführung der anderen Funktionen angehalten.
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow