在看《深入浅出Node.js》的时候,书上第四章,有句话:“Node在处理异常上形成了一种约定,将异常作为回调函数的第一个实参传回,如果为空值,则表明异步调用没有异常抛出。”
这句话下也有个简短的例子,本人刚学Node,感觉这句话好绕口。有没有更详细的例子?
在看《深入浅出Node.js》的时候,书上第四章,有句话:“Node在处理异常上形成了一种约定,将异常作为回调函数的第一个实参传回,如果为空值,则表明异步调用没有异常抛出。”
这句话下也有个简短的例子,本人刚学Node,感觉这句话好绕口。有没有更详细的例子?
补充
============
如果需要抛出异常:
function doSomething(a, callback) {
if(! a) {
return callback(new Error('params error.')); //回调传入 Error
}
var b = a++;
return callback(null, b);// 无异常
}
这是有err的情况,就是回调函数的第一个参数
js
client.on('line',function(err,data){ if(err){ console.log(err); }else console.log(data) });
这是回调没有抛出异常的情况
js
client.on('data',funciton(data){ console.log(data); })
这是没有回调参数的情况
js
client.on('end',function(){ console.log('end')})
8 回答4.7k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
这句话指的是如下这种情况:
基本上node的异步api都有这样的约定,即最后一个参数为一个回调函数,这个回调函数的第一个参数表示异步操作的过程中是否发生异常,第二个参数表示异步操作的结果。