1.异步函数
var
fs
=
require
(
'fs'
)
;
fs
.
readFile
(
'file.txt'
,
'utf-8'
,
function
(
err
,
data
)
{
if
(
err
)
{
console
.
log
(
'读取文件错误'
)
;
}
else
{
console
.
log
(
data
)
;
}
}
)
console
.
log
(
'end'
)
;
2.同步函数
var
fs
=
require
(
'fs'
)
;
var
data
=
fs
.readFileSync
(
'file.txt'
,
'utf-8'
)
;
console
.
log
(
data
)
;
console
.
log
(
'end'
)
;
3.分析:
调用时所作的工作只是将异步式I/O请求发送给操作系统,然后立即返回并执行后面的语句,执行完以后进入事件循环监听事件,当fs接收到IO请求完成事件时。事件循环主动调用完成后续工作。同步则是阻塞等待完成后,继续执行。
4.事件
//声明事件对象
var
EventEmitter
=
require
(
'events'
)
.EventEmitter;
var
event
=
new
EventEmitter
()
;
//注册事件对象
event
.
on
(
'some_event'
,
function
()
{
console
.
log
(
'这是一个自定义事件'
)
;
}
)
;
//多长时间后触发事件对象
setTimeout
(
function
()
{
event
.
emit
(
'some_event'
)
;
},
1000
)
;