Чем отличается моя проблема: после того, как я успешно выполнил цепочку обещаний, у меня остались отдельные массивы со списком файлов и каталогов, мне нужно снова извлечь файлы из этих каталогов, добавить их в первый список файлов, а затем, наконец, выбрать на основедля всего заполненного списка файлов.
Каждая функция самостоятельно, включая другую, не показанную для спуска в каталоги и перечисления файлов там, также работает.
В концедень мне просто нужно содержимое любых файлов package.json, которыми я владею, во всех моих репозиториях на github, если я иду по этому длинному / неправильному пути.
Я действительно пытался вернуть объект
{
files: files,
paths: paths
}
но объект каждый раз был пустым.
listRepos = async () => {
const path = '/user/repos'
return fetch(api + path, options)
.then(res => res.json())
.then(json => json.filter(repo => {
return repo.owner.login === user
}))
}
listContents = async (repo) => {
const path = `/repos/${repo.owner.login}/${repo.name}/contents`
return fetch(api + path, options)
.then(res => res.json())
}
getNext = async () => {
let contents = []
let repoList = await listRepos()
return repoList.map(async (repo) => {
await listContents(repo).then(async (contents) => { // This happens for each repo
let pathList = await contents.filter(entry => {
return entry.type === 'dir' && entry.name != 'node_modules'
})
pathList.forEach(path => paths.push(path))
let fileList = await contents.data.filter(entry => {
return entry.name === 'package.json'
})
})
return {
files: fileList,
paths: pathList
}
})
}
Я возвращаюсь вперед или между лотами
Promise { <pending> }
или "Отклонением необработанного обещания" 's
Я понимаю, что мне нужно отлавливать все мои ошибки, я вырезал их из кода здесь для простоты и читабельности.