Учитывая следующее действующее действие vuex с именем init
, которое извлекает коллекцию settings
и accounts
:
actions: {
init: firestoreAction(({ bindFirestoreRef, commit }, payload) => {
bindFirestoreRef(
'settings', fb.settings.doc(payload),
)
.then(() => commit('SETTINGS_READY', true))
.catch((err) => {
commit('SNACKBAR_TEXT', err.message);
Sentry.captureException(err);
});
bindFirestoreRef(
'accounts', fb.accounts.where('program', '==', payload),
)
.then(() => commit('ACCOUNTS_READY', true))
.catch((err) => {
commit('SNACKBAR_TEXT', err.message);
Sentry.captureException(err);
});
}),
},
У меня есть два вопроса:
- Кажется, что код работает синхронно, но я хочу, чтобы две коллекции извлекались асинхронно, чтобы максимизировать производительность. Как этого достичь?
- Можно ли реорганизовать этот код, чтобы сделать его более лаконичным и в то же время обеспечить независимую (и синхронную) функциональность
then/catch
, представленную в примере?