Node.js
Evita l'inferno del callback
Ricerca…
Modulo asincrono
La fonte è disponibile per il download da GitHub. In alternativa, puoi installare usando npm:
$ npm install --save async
Oltre a usare Bower:
$ bower installa async
Esempio:
var async = require("async");
async.parallel([
function(callback) { ... },
function(callback) { ... }
], function(err, results) {
// optional callback
});
Modulo asincrono
Per fortuna esistono librerie come Async.js per cercare di arginare il problema. Async aggiunge un sottile strato di funzioni in cima al codice, ma può ridurre notevolmente la complessità evitando il nesting di callback.
Esistono molti metodi di supporto in Async che possono essere utilizzati in diverse situazioni, come serie, parallelo, cascata, ecc. Ogni funzione ha un caso d'uso specifico, quindi prenditi un po 'di tempo per imparare quale aiuterà in quali situazioni.
Buono come Async, come qualsiasi cosa, non è perfetto. È molto facile lasciarsi trasportare dalla combinazione di serie, parallelo, per sempre, ecc., A quel punto si è di nuovo a destra dove hai iniziato con il codice disordinato. Fai attenzione a non ottimizzarlo prematuramente. Solo perché alcune attività asincrone possono essere eseguite in parallelo non sempre significa che dovrebbero. In realtà, poiché il nodo è solo a thread singolo, l'esecuzione di attività in parallelo sull'utilizzo di Async ha un guadagno di prestazioni minimo o nullo.
La fonte è disponibile per il download da https://github.com/caolan/async . In alternativa, puoi installare usando npm:
$ npm install --save async
Oltre a usare Bower:
$ bower installa async
Esempio di cascata di Async:
var fs = require('fs');
var async = require('async');
var myFile = '/tmp/test';
async.waterfall([
function(callback) {
fs.readFile(myFile, 'utf8', callback);
},
function(txt, callback) {
txt = txt + '\nAppended something!';
fs.writeFile(myFile, txt, callback);
}
], function (err, result) {
if(err) return console.log(err);
console.log('Appended text!');
});