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