我试图在finally
块中的所有内容完成之后,使try
块中的代码最后运行。
但是,finally
块中的代码似乎过早运行。
async CONNECT_USER({ commit, state }, userId) {
try {
if (state.currentUser === null) {
let currentUser = await this.$chatKit.connectUser(userId)
commit('SET_CURRENT_USER', {
id: currentUser.id
})
currentUser.rooms.forEach(async room => {
commit('ADD_ROOM', {
id: room.id,
name: room.name,
isPrivate: room.isPrivate,
users: [],
lastMessage: null
})
let subscribedRoom = await this.$chatKit.subscribeToRoom(room.id)
let users = subscribedRoom.users.map(user => ({
id: user.id,
name: user.name,
}))
commit('ADD_ROOM_USERS', {
roomId: room.id,
users: users,
})
})
}
} catch (error) {
handleError(commit, error)
} finally {
commit('SET_LOADING', false);
}
}