扫码关注官方订阅号
84669人学习
65727人学习
82984人学习
467778人学习
498837人学习
471966人学习
256484人学习
152542人学习
224170人学习
139536人学习
81804人学习
85022人学习
11944人学习
20001人学习
60816人学习
5487人学习
15007人学习
2150人学习
6980人学习
194925人学习
359900人学习
1142人学习
19058人学习
3206人学习
180550人学习
48569人学习
17603人学习
40936人学习
1049人学习
750人学习
32909人学习
在看《深入浅出Node.js》的时候,书上第四章,有句话:“Node在处理异常上形成了一种约定,将异常作为回调函数的第一个实参传回,如果为空值,则表明异步调用没有异常抛出。”
这句话下也有个简短的例子,本人刚学Node,感觉这句话好绕口。有没有更详细的例子?
业精于勤,荒于嬉;行成于思,毁于随。
这句话指的是如下这种情况:
fs.readFile('/etc/passwd', function (err, data) { if (err) { // 判断是否发生错误,并做相应的处理 } else { console.log(data); // 处理结果 } });
基本上node的异步api都有这样的约定,即最后一个参数为一个回调函数,这个回调函数的第一个参数表示异步操作的过程中是否发生异常,第二个参数表示异步操作的结果。
补充 ============ 如果需要抛出异常:
function doSomething(a, callback) { if(! a) { return callback(new Error('params error.')); //回调传入 Error } var b = a++; return callback(null, b);// 无异常 }
一大堆的function (err, xx, xx) {}来袭
function (err, xx, xx) {}
callback第一个参数为error,不是规定的规定
这是有err的情况,就是回调函数的第一个参数
jsclient.on('line',function(err,data){ if(err){ console.log(err); }else console.log(data) });
js
client.on('line',function(err,data){ if(err){ console.log(err); }else console.log(data) });
这是回调没有抛出异常的情况
jsclient.on('data',funciton(data){ console.log(data); })
client.on('data',funciton(data){ console.log(data); })
这是没有回调参数的情况
jsclient.on('end',function(){ console.log('end')})
client.on('end',function(){ console.log('end')})
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2024 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号
精品班
技术支持
技术咨询
学习群
会员优惠
返回顶部
这句话指的是如下这种情况:
基本上node的异步api都有这样的约定,即最后一个参数为一个回调函数,这个回调函数的第一个参数表示异步操作的过程中是否发生异常,第二个参数表示异步操作的结果。
补充
============
如果需要抛出异常:
一大堆的
function (err, xx, xx) {}
来袭callback第一个参数为error,不是规定的规定
这是有err的情况,就是回调函数的第一个参数
这是回调没有抛出异常的情况
这是没有回调参数的情况