NodeJS异步功能不起作用

时间:2016-11-24 18:09:39

标签: javascript node.js function asynchronous

我阅读了许多关于如何在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的记录?

1 个答案:

答案 0 :(得分: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);
});