Как выполнить несколько выборок, используя API github, которые зависят друг от друга и возвращают данные - PullRequest
1 голос
/ 29 марта 2019

Я пытаюсь получить данные из API github и вернуть данные по маршруту.Однако, когда я пытаюсь отправить данные обратно клиенту, массив проектов пуст.

Я попытался вернуть данные во втором последнем обещании, но он не работает.Требуется ли для этого использование Promises / async / await

router.get('/projects', (req, res) => {

    fetchRepos().then(res => {
        if (!res.ok) {
            res.send({
                success: false,
                message: 'Server Error'
            })
            return
        }
        return res.json()
    }).then(repos => {
        var projects = []

        repos.forEach(element => {
            fetch(element.languages_url + '?access_token=' + process.env.PERSONAL_ACCESS_TOKEN).then(res => res.json()).then(langs => {
                langs = Object.keys(langs).map(e => e.toLowerCase())
                projects.push({
                    title: element.name,
                    description: element.description,
                    link: element.html_url,
                    technologies: langs,
                    id: element.pushed_at,
                    webpage: element.homepage
                })
                 console.log(projects)

            })

        });
        console.log(projects)
        res.send({
            success:true,
            data:projects
        })
    })

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...