javascript - NodeJS 异步函数不起作用

标签 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 不应该将 test 视为同步函数吗!? 如果不是,那么我该如何创建它,以便我可以到达检查 2 和 3 的日志记录,而无需等待循环结束?

最佳答案

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

关于javascript - NodeJS 异步函数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40792520/

相关文章:

python - 基于 Django rest 框架函数的 View 中的身份验证

javascript - 覆盖 console.log|错误,winston 不再工作

javascript - 在使用 setInterval 调用 x 次后执行函数

javascript - 如何显示JS当前使用的H1字体

javascript - Nodejs可以处理的负载是多少

node.js - 文件资源管理器如何打开文件?

javascript - 如何动态加载大型视频文件并将其流式传输到不发送范围 header 的 IE?

javascript - 化简函数采用未定义的初始值

Jquery - 模拟点击按钮不触发功能

javascript - 使用 Mailchimp API 3.0 获取并显示成员(member)状态(或错误)