2016-11-24 4 views
1

Ich habe viele Beiträge gelesen, wie Async-Funktionen in NodeJS erstellen, aber ich kann es nicht herausfinden! Ich weiß, dass dies das am meisten gefragte Thema ist, aber schauen Sie in diesem Beispielcode hier:NodeJS Async-Funktion, die nicht funktioniert

function test2(){ 
console.log("Check x"); 
} 
function test(callback){ 
    for(var i=0;i<1000000000000;i++){} 
    callback(); 
} 

console.log("Check 1"); 
test(test2); 
console.log("Check 2"); 
console.log("Check 3"); 

Jetzt shouldnt NodeJS betrachtet Test eine Sync-Funktion sein!? und wenn nicht dann wie erstelle ich es so, dass ich die Protokollierung von Scheck 2 und 3 erreichen kann, ohne auf das Ende der Schleife zu warten?

+2

Verwendung 'SetTimeout' – Mahi

+1

Es gibt nichts asynchron ist in dein Code. –

Antwort

0

Nicht alles in Node.js ist asynchron. Asynchronous Prozess geschieht nur, wenn I/O oder Ereignis beteiligt ist, wie Dateisystem zuzugreifen, Netzwerk-Anforderung bearbeitet wird, Daten aus der Datenbank zu lesen, usw.

Beispiel:

var fs = require('fs); //node.js built-in file system which requires I/O from storage 
function getDataFromFile(callback) { 
    //fs.readFile is asynchronous process 
    fs.readFile('path/to/file', (err, data) => { 
    if (err) throw err; 
    callback(data); 
    }); 
} 
getDataFromFile(function(data) { 
    //this is asynchronous callback from getDataFromFile() 
    console.log('data ' + data); 
}); 
Verwandte Themen