Javascript ';数据';带有两个参数的回调不会将buffer.toString()打印为字符串
使用节点中的process.openStdin()对象获取输入,如果回调函数有两个参数,则输出为缓冲区:Javascript ';数据';带有两个参数的回调不会将buffer.toString()打印为字符串,javascript,node.js,Javascript,Node.js,使用节点中的process.openStdin()对象获取输入,如果回调函数有两个参数,则输出为缓冲区: var stdin = process.openStdin(); stdin.on('data',function(err,chunk){ if(err) { console.error(err); return; } console.log(""+chunk.toString('ascii')); }); 输入:abcd
var stdin = process.openStdin();
stdin.on('data',function(err,chunk){
if(err)
{
console.error(err);
return;
}
console.log(""+chunk.toString('ascii'));
});
输入:abcd
输出:
但是如果回调函数被指定为一个参数,如下所示:
var stdin = process.openStdin();
stdin.on('data',function(chunk){
// if(err)
// {
// console.error(err);
// return;
// }
console.log(""+chunk.toString('ascii'));
});
然后输出与输入匹配(即,输出为abcd
)。这是为什么?没有err
参数,它们只有一个缓冲区/字符串参数
如果要侦听错误,则需要单独侦听流上的。没有err
参数,它们只有一个缓冲区/字符串参数
如果要侦听错误,则需要单独侦听流上的错误