У меня есть следующие функции:
export const getSet = async (
projectId,
setId,
dispatch
) => await (
projectId && setId &&
setsDb
.child(`${projectId}/${setId}`)
.once("value", async snap => {
const set = snap.val();
const elements = Object.keys(set);
const elementsClasses = await getClassesForElements(projectId, elements);
const classes = Object.values(elementsClasses);
const classesAttributes = await getClassesAttributes(projectId, classes);
dispatch(setClasses(classesAttributes));
dispatch(setElements(elementsClasses));
dispatch(setSet(set));
})
);
export const getPageDetails = (projectId, pageId) => (
dispatch => (
projectId && pageId &&
pagesDb
.child(`${projectId}/${pageId}`)
.once("value", async snap => {
const pageDetails = snap.val();
const { setId } = pageDetails;
await getSet(projectId, setId, dispatch)
dispatch(
setPageDetails(
pageDetails
)
);
})
)
);
У меня не так много опыта работы с асинхронными функциями, но я хочу заработать getPageDetails
с dispatch(setPageDetails(pageDetails))
, пока getSet
не завершит все рассылки. В вышеперечисленных функциях все работает отлично, за исключением того, что getSet
заканчивается последней. Как это решить?