大家能发现此代码隐藏的bug吗?
Foo.prototype.get = function(key, callback) {
db.get(key, function(err, data) {
if (err) return callback(err);
try {
callback(null, JSON.parse(data.toString()));
} catch(e) {
callback(e);
}
});
};
4 回复
代码不美观
callback(error)回调两次?
如果是callback里面出错了,会导致再次调用callback
try {
callback(null, JSON.parse(data.toString()));
} catch(e) {
callback(e);
}
如果try 中的callback执行出错,catch将执行。
try {
data = JSON.parse(data.toString());
} catch(e) {
return callback(e);
}
callback(null,data );