给定以下功能性 vuex 操作,该操作命名为init
获取 asettings
和一个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
示例中存在的独立(和同步)功能?