我找到了一些遗留代码,其中工厂从子树目录加载一个文件。
var name = 'file.js'
try {
return require('folder/foo/' + name)
} catch (e) {
try {
return require('folder/foo/bar/' + name)
} catch (ee) {
return null
}
}
如何避免每个文件夹级别的嵌套try / catch块? 我试过这个。
const name = 'file.js'
const pathList = ['folder/foo/', 'folder/foo/bar/']
return pathList.map(path => {
const file = `${path}${name}`
try {
return require(file).default
} catch (exception) {
return null
}
})
但这会改变行为。如果在第一级找不到该文件,则返回null而不是下一级。如果我在pathList声明中更改顺序,它无济于事。
在React应用环境中有更好的方法吗?我不能使用node.js中的FS。