Node.js
Voorkom callback hell
Zoeken…
Async-module
De bron kan worden gedownload van GitHub. Als alternatief kunt u installeren met npm:
$ npm installatie - async opslaan
Naast het gebruik van Bower:
$ bower async installeren
Voorbeeld:
var async = require("async");
async.parallel([
function(callback) { ... },
function(callback) { ... }
], function(err, results) {
// optional callback
});
Async-module
Gelukkig zijn er bibliotheken zoals Async.js om het probleem op te lossen. Async voegt een dunne laag functies toe aan uw code, maar kan de complexiteit aanzienlijk verminderen door callback-nesting te voorkomen.
Er bestaan veel hulpmethoden in Async die in verschillende situaties kunnen worden gebruikt, zoals series, parallel, waterval, enz. Elke functie heeft een specifieke use-case, dus neem de tijd om te leren welke in welke situaties helpt.
Zo goed als Async is, zoals alles, het is niet perfect. Het is heel gemakkelijk om je te laten meeslepen door series, parallel, voor altijd, enz. Te combineren, op welk punt je meteen terug bent naar waar je begon met rommelige code. Pas op dat u niet voortijdig optimaliseert. Het feit dat een paar asynchrone taken parallel kunnen worden uitgevoerd, betekent niet altijd dat ze dat zouden moeten doen. Aangezien Node alleen single-threaded is, hebben taken die parallel lopen bij het gebruik van Async in werkelijkheid weinig tot geen prestatiewinst.
De bron kan worden gedownload van https://github.com/caolan/async . Als alternatief kunt u installeren met npm:
$ npm installatie - async opslaan
Naast het gebruik van Bower:
$ bower async installeren
Async's waterval Voorbeeld:
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!');
});