Vue中methods的互相引用问题

  1. Vue中methods的互相引用问题,返回undefined
  2. 代码如下

    methods:{
    funca: function(){
        let token = this.$http.post(xxx);// 通过post获取token
        alert("cc " + token);
        renturn token;
    }
    funcb: function(){
        let token = this.funca();
        //还使用过let token = this.$options.methods.getToken.bind(this)();
        //结果都是token为undefined
        //需要将token作为一个参数传递
        this.$http.get(xxx).then(function (res){
            alert("aa")
        },function(err){
            alert("bb")
        });
    }};
    mounted():{
    this.funcb();

    }

3.运行结果,因为获取不到token,所以弹出aa的代码不会执行到

  • 先弹出 bb
  • 再弹出 cc

4.为什么先调用的funca,但是后执行?

阅读 2.3k
1 个回答
funa=function(){
    let token =Promise.resolve(1).then(dd=>dd)
    alert("cc " + token);
    return token;
}
funcb=function(){
    let token = funa();
    Promise.reject(1).then(function (res){
        alert("aa")
    },function(err){
        alert("bb")
    });
};

funcb()

首先,你的 let token = this.$http.post(xxx);不对这里的token是Promise对象,我按照你的逻辑模拟了一下,并没有出现先bb再cc的情况,你的return也不对,不是renturn

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题