问答

vue 使用this.$store.dispatch 如何传递 一个对象和一个回调函数

作者:admin 2021-05-07 我要评论

登录功能 在action中发送请求成功后触发回调函数 提示信息 这样能否可行 vue let param = this.loginFrom; this.$store.dispatch('getUserInfo',param, function...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

登录功能 在action中发送请求成功后触发回调函数 提示信息
这样能否可行
vue

let param = this.loginFrom;
 this.$store.dispatch('getUserInfo',param, function(result) {
            console.log("来到回调函数");
            if (result.data.code) {
              this.loading = false;
              this.$router.replace('/home')
              this.$message({
                type:'success',
                message:'登陆成功'
              });
            } else {
              this.loading = false;
              this.$message({
                type:'error',
                message:result.data.msg
              });
            }
          });

action

async getUserInfo({commit},  param ,callback){
        if(param.role === '0'){ //老师身份登录
            const teacher = {
                teacherName: param.username,
                password: param.password,
            };
            const result = await TeacherLogin(teacher);
            if (result.data.code) {
                const userInfo = result.data.datas;
                commit(RECEIVE_USER_INFO,{userInfo})
                console.log("接下来执行回调函数");
                callback && callback(result);
            } 
        }     
    },
###

Promise

async getUserInfo({commit},  param ){
            return new Promise(resolve =>{
                if(param.role === '0'){ //老师身份登录
            const teacher = {
                teacherName: param.username,
                password: param.password,
            };
            const result = await TeacherLogin(teacher);
            if (result.data.code) {
                const userInfo = result.data.datas;
                commit(RECEIVE_USER_INFO,{userInfo})
                console.log("接下来执行回调函数");
               resolve(resolve)
            } 
        } 
            })
    },
 this.$store.dispatch('getUserInfo',param).then(result => {
         console.log("来到回调函数");
            if (result.data.code) {
              this.loading = false;
              this.$router.replace('/home')
              this.$message({
                type:'success',
                message:'登陆成功'
              });
            } else {
              this.loading = false;
              this.$message({
                type:'error',
                message:result.data.msg
              });
            }
          }
 })

回调

let param = this.loginFrom;
const callback = function(result) {
            console.log("来到回调函数");
            if (result.data.code) {
              this.loading = false;
              this.$router.replace('/home')
              this.$message({
                type:'success',
                message:'登陆成功'
              });
            } else {
              this.loading = false;
              this.$message({
                type:'error',
                message:result.data.msg
              });
            }
          }
 this.$store.dispatch('getUserInfo',{callback, param});
async getUserInfo({commit},  {param ,callback}){
        if(param.role === '0'){ //老师身份登录
            const teacher = {
                teacherName: param.username,
                password: param.password,
            };
            const result = await TeacherLogin(teacher);
            if (result.data.code) {
                const userInfo = result.data.datas;
                commit(RECEIVE_USER_INFO,{userInfo})
                console.log("接下来执行回调函数");
                callback && callback(result);
            } 
        }     
    },

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • vue 使用this.$store.dispatch 如何传

    vue 使用this.$store.dispatch 如何传

  • 前端table设置rowspan的问题?

    前端table设置rowspan的问题?

  • 浮点数除以pow(10, n)会出现精度丢失问

    浮点数除以pow(10, n)会出现精度丢失问

  • 使用ant-design的表格,希望点击排序之

    使用ant-design的表格,希望点击排序之

腾讯云代理商
海外云服务器