我是一名java开发人员,现在正在尝试学习各种并发模型,目前正在研究Node。据我所知,下面的代码在节点中执行async io: -
1. fs = require('fs')
2. fs.readFile('/etc/hosts', 'utf8', function (err,data) {
3. if (err) {
4. return console.log(err);
5. }
6. console.log(data);
7. });
据我所知,第2行是异步调用,告诉节点并行读取文件,完成后执行回调函数(将其附加到事件队列中?)。
节点是否提供了我可以为自己的用例创建类似函数的任何包,我在其中执行异步函数并将执行的回调放到事件循环中?
我读到Node使用libuv
包来实现异步行为。看起来npm上有第三方图书馆 - npm-libuv_thread。它会提供我需要的机制吗?
更新:对于以下代码: -
var sleep = require('sleep');
printWithSleep();
console.log("Hello");
function printWithSleep(){
sleep.sleep(5);
console.log("World")
}
节点等待5秒然后打印World
后跟Hello
,我的问题是 - 我有什么方法可以将printWithSleep
设为异步(目前阻止)