Как я могу синхронизировать выборку с другой выборкой в ​​JavaScript - PullRequest
1 голос
/ 26 марта 2020

Цель

Я хочу получить данные при первом получении getComapniesData (). Затем я должен использовать идентификатор первой выборки данных, чтобы получить все данные из второй выборки getIncomesData (id). И я хочу регистрировать данные после того, как обе выборки получат полные данные и завершатся.

Функции

const getCompaniesData = async () => {
    try {
        const response = await fetch(baseUrl);
        const data = await response.json();

        return data;
    } catch (error) {
        console.log(error);
    }
};

const getIncomesData = async (id) => {
    try {
        const response = await fetch(incomesUrl+id);
        const data = await response.json();

        return data;
    } catch (error) {
        console.log(error);
    }
};

Получить данные

window.onload = () => {
    const companiesTab = [];
    const incomesTab = [];

    getCompaniesData()
        .then(compData => {
            compData.map(item => {

                let company = new Company(item.id, item.name, item.city, 0);
                companiesTab.push(company);
            });

            companiesTab.map( company => {

//How to fetch here always full data from fetch getIncomesData(id)?

                getIncomesData(company.id).then(incomData => {

                    let incomes = new Incomes(incomData.id, incomData.incomes);
                    incomes.sumIncomes(incomes);
                    incomesTab.push(incomes);

                    company.tIncomes = (Math.round(incomes.sum * 100) / 100).toFixed(2);
                });
            });
        })

        .then( () => {

//How to have full data here (It's 300 cells in tab)?

            console.log(companiesTab);
            console.log(incomesTab);
        });
}
...