【发布时间】:2020-03-02 11:15:55
【问题描述】:
给定以下名为 init 的有效 vuex 操作,它获取 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功能?
【问题讨论】:
标签: vue.js google-cloud-firestore vuex vuexfire