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