鍍金池/ 問答/HTML/ Vue中methods的互相引用問題

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)();
        //結(jié)果都是token為undefined
        //需要將token作為一個參數(shù)傳遞
        this.$http.get(xxx).then(function (res){
            alert("aa")
        },function(err){
            alert("bb")
        });
    }};
    mounted():{
    this.funcb();

    }

3.運(yùn)行結(jié)果,因?yàn)楂@取不到token,所以彈出aa的代碼不會執(zhí)行到

  • 先彈出 bb
  • 再彈出 cc

4.為什么先調(diào)用的funca,但是后執(zhí)行?

回答
編輯回答
涼薄
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對象,我按照你的邏輯模擬了一下,并沒有出現(xiàn)先bb再cc的情況,你的return也不對,不是renturn

2017年12月4日 16:02