實例代碼:
actions: { // 獲取用戶信息 getUserInfo({commit}) { return new Promise((resolve, reject) => { getUserInfo().then(user => { if (user.data.success) { commit('setUserName', user.data.data.realName) } resolve(user) }).catch(err => { reject(err) }) }) } }
講解:
1.vuex中action方法區第一個參數是約定好的,第二個是用戶自定義的(如果有)。第一個參數為:context,即:store的對象context,如果想限定只能使用context中的屬性或者方法,則需要使用{}來限定,如:{commit}。
2.Promise可以將異步方法按一定的順序執行,其自帶2個參數。參數一:resolve正確返回后使用的參數,reject為異步函數調用失敗后的調用參數。