CNode

大家能发现此代码隐藏的bug吗?

分享
Ffengmk2发布于15 年前最后回复3 小时前4 回复5174 浏览0 收藏
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);
    }
  });
};
查看回复

回复 (3)

T
tank00#1·14 年前

callback(error)回调两次?

L
leizongmin#2·14 年前

如果是callback里面出错了,会导致再次调用callback

R
rench#3·14 年前
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 );
参与回复
登录后即可参与回复。登录