In Nodejs, non ci sono praticamente operazioni di I/O di blocco. Ciò significa che quasi tutti i codici IO nodejs coinvolgono molte callback. Questo vale per la lettura e la scrittura da/per database, file, processi, ecc Un tipico esempio di questo è la seguente:Gestione di molte ricorsioni di callback in Nodejs
var useFile = function(filename,callback){
posix.stat(filename).addCallback(function (stats) {
posix.open(filename, process.O_RDONLY, 0666).addCallback(function (fd) {
posix.read(fd, stats.size, 0).addCallback(function(contents){
callback(contents);
});
});
});
};
...
useFile("test.data",function(data){
// use data..
});
Sto anticipando la scrittura di codice che renderà molti operazioni di IO, quindi mi aspetto per scrivere molti callbacks. Sono abbastanza a mio agio nell'usare i callback, ma sono preoccupato per tutte le ricorsioni. Sono in pericolo di incappare in troppe ricorsioni e saltare da una pila da qualche parte? Se faccio migliaia di singole scritture sul mio negozio di valori-chiave con migliaia di callback, il mio programma finirà per bloccarsi?
Sto fraintendendo o sottostimando l'impatto? In caso contrario, c'è un modo per aggirare questo mentre si utilizza ancora lo stile di codifica del callback di Nodejs?
L'argomento è vecchio ma controlla asincrono: https://github.com/caolan/async – fider