我尝试用lodash的_.attempt()替换try catch块来清理服务器代码
let target = (_.attempt(fs.statSync( "path" ) ) );
当try / catch等效项不是时返回错误
我也尝试过使用异步版本,如果我使用_.attempt()错误,对我来说还不清楚,建议吗?
最佳答案
Lodash的_.attempt()
希望将一个函数作为第一个参数调用,并将该函数的参数作为第二个参数调用:
let target = _.attempt(function(path) {
fs.statSync(path);
}, "path");
或缩短版本建议jmmygoggle's comment:
let target = _.attempt(fs.statSync, "path");
您传递的是
fs.statSync("path")
的结果,而不是要调用的方法,这将引发_.attempt()
无法处理的错误。