使用promise判断是否登录

Posted on 2019-01-20 23:12  猫头唔食鱼  阅读(702)  评论(0编辑  收藏  举报

步骤:

1.创建并返回new Promise((resolve,reject)=>{}),resolve和reject分别是成功和失败后所执行的函数

2.判断是否含有cookie,如果含有cookie ,则返回登录成功信息,如果没有cookie,则返回登录失败信息

  或者判断sessionStoreage里是否又userId信息

判断是否含有cookie的方法:var flag = document.cookie.indexOf(cookieName)

3.调用then函数,执行已登录代码,调用catch方法,执行未登录的代码

如果不调用catch方法,会出现以下的错误:

 

完整代码:

<template>
  <div>{{msg.msg}}</div>
</template>

<script>
export default {
  name: "HelloWorld",
  data() {
    return {
      msg:{}
    };
  },
  methods: {
    isLogin() {
      // 创建并返回promise,promise分别有两个参数,分别是成功和失败后所执行的函数
      return new Promise((resolve, reject) => {
        // document.cookie.indexOf(cookieName)  判断是否含有名为cookieName的cookies,大于-1,即存在该cookies,否则不存在该cookies
        var flag = document.cookie.indexOf("cookieName") > -1 ? true : false;
        //如果含有该cookies,则登录成功,否则登录失败
        if (flag) {
          resolve({
            state: 0,
            msg: "登录成功"
          });
        } else {
          reject({
            state: 1,
            msg: "登录失败"
          });
        }
      });
    }
  },
  created() {
    //调用登录方法,使用then函数,函数里是登录成功后执行的操作,使用catch函数,函数里是登录失败后执行的操作
    this.isLogin().then(res=>{
      console.log(res);
      this.msg = res;
    }).catch(err=>{
      console.log(err);
      this.msg = err;
    });
  }
};
</script>