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迭代?