Javascript 什么';在嵌套文件夹中查找文件的最佳方法是什么?
我发现一些遗留代码,其中工厂从子树目录加载一个文件Javascript 什么';在嵌套文件夹中查找文件的最佳方法是什么?,javascript,reactjs,react-native,ecmascript-6,Javascript,Reactjs,React Native,Ecmascript 6,我发现一些遗留代码,其中工厂从子树目录加载一个文件 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.
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,而不是进入下一个级别。如果在路径列表声明中更改顺序,则没有帮助
在React应用程序环境中有更好的方法吗?我无法使用node.js中的FS。
.map(…).find(Boolean)
?在路径和名称之间的表达式${path}${name}
中是否缺少一个//code>。@Chris谢谢,我更新了示例。@RonnySpringer,你的意思是它将路径列表
返回为null,还是仅仅是路径解析失败的项?假设folder/foo/file.js
不存在,但是folder/foo/bar/file.js
存在,那么预期的返回值是多少?@Chris这是正确的示例。返回值为空。捕获第一次运行,因为文件不在文件夹/foo
中。如何运行secound迭代?