async


Tέρμα οι υποσχέσεις. Τέρμα τα promises. Έκανα προσπάθεια να τα χρησιμοποιήσω με Q και Bluebird αλλά η προσπάθεια ήταν ανεπιτυχής. Η λύση στο προβλήματα του callback hell είναι το async!

Εν τάχει για tasks που πρέπει να εκτελεστούν το ένα μετά το άλλο async.waterfall, για loops το async.eachSeries και καθάρισα...

async.waterfall([
    function (callback) {
        callback(null, 1);
    },
    function (arg1, callback) {
        // arg1 should be 1
        callback(null, 2, 3);
    },
    function (arg1, arg2, callback) {
        // arg1 should be 2
        // arg2 should be 3
        callback(null, 'done')
    }
], function (err, result) {
    // result should be 'done'
});

async.eachSeries(items, function (item, callback) {
            // Do something with item
            callback();
        }
    },
    function (err) {
        // if any of the file processing produced an error, err would equal that error
        if (err) {
            // One of the iterations produced an error.
            // All processing will now stop.
            console.log('A file failed to process');
        } else {
            console.log('All files have been processed successfully');
        }
    });
0