2016-11-24 180 views
1

我读了很多关于如何在NodeJS中创建异步函数的文章,但我无法弄清楚!我知道这是最问的话题,但看看这个示例代码在这里:不能工作的NodeJS异步函数

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"); 

现在不应该考虑的NodeJS测试是一个同步的功能!? 如果不是那么我该如何创建它,以便我可以达到检查2和3的日志记录,而无需等待循环结束?

+2

使用'的setTimeout' – Mahi

+1

没有什么异步在你的代码。 –

回答

0

并非Node.js中的所有内容都是异步的。当I/O或事件涉及像访问文件系统,处理网络请求,读取从数据库的数据等 异步过程只发生

实施例:

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); 
});