JavaScript等待错误的顺序

时间:2019-03-04 00:16:27

标签: javascript vue.js ecmascript-6 vuejs2 ecmascript-5

我试图在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);
        }
    }

0 个答案:

没有答案