только начинаю изучать node и асинхронность, пишу функцию, которая рекурсивно поищет файл package.json и вернет путь, где она его найдет.
function getRoot(startPath) {
let isRoot = false;
if (isRoot) {
return startPath
}
fs.access(`${startPath}/package.json`, fs.constants.F_OK, (err) => {
if (!err) {
isRoot = true;
} else {
const arr = startPath.split('/');
arr.pop();
const newRoot = arr.join('/');
return getRoot(newRoot);
}
})
}
console.log(getRoot(process.env.PWD));
Мне возвращается undefined, хотя если поконсолись, то функция вызывается каждый раз с ожидаемым startPath и останавливается как надо. Не пойму, где что не так?