首页 > 解决方案 > 当组件使用 $router.push 渲染时,Promise 无法解决

问题描述

我试图在组件的已安装挂钩内获取套接字 ID。但是当我刷新页面时它可以工作,当用户使用 $router.push() 进入组件时不起作用

 getSocketId() {
                return new Promise((resolve, reject) => {
                    debugger;
                     Echo.connector.pusher.connection.bind('connected', function () {
                     resolve(Echo.socketId())
                 });
                })
        },
  mounted(){
     this.getSocketId().then((socketId => {
                  let data =  {
                      data : {
                          booking_id : this.$route.params.id,
                          user_id : JSON.parse(localStorage.getItem("app_user_data")).id,
                          is_active: 1
                      },
                      socket_id : socketId
                  }
                this.postUserDataToFirebolt(data)
                this.addUserInBooking(data)
            }))
}

标签: javascriptvue.jsvuejs2vuexvue-router

解决方案


推荐阅读