我读了很多关于如何在 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/