鍍金池/ 問答/HTML/ 關(guān)于promise的問題

關(guān)于promise的問題

a () {
    return new Promise((res, rej) => {
        //用接口獲取數(shù)據(jù) ,寫法如下比如:
        getData().then(res => {
            this.data = res.data.reslut
            console.log(this.data)
        })
    });
}

vue中這樣定義了a方法, 并且在一個(gè)按鈕的點(diǎn)擊事件中調(diào)用a方法,想要的效果就是希望執(zhí)行完a方法后,再執(zhí)行alert,如下:

click () {
    this.a().then(()=> {
        alert(11)
    })
}

這樣調(diào)用中a方法是生效了,但是 后面的alert(11)并未觸發(fā), 是哪里錯(cuò)了嗎? 還是寫的根本就是錯(cuò)的,請(qǐng)大神指點(diǎn)指點(diǎn)。

回答
編輯回答
孤酒

resolve將promise對(duì)象當(dāng)前的狀態(tài)變?yōu)槌晒?reject將promise對(duì)象當(dāng)前的狀態(tài)變?yōu)槭?,狀態(tài)改變后才會(huì)繼續(xù)執(zhí)行then

2018年2月17日 05:07
編輯回答
過客

你沒有用 resolve 改變promise狀態(tài),所以沒有到 then 回調(diào)中去。代碼樓上已經(jīng)給出了,就不再贅述了

2017年2月25日 21:51
編輯回答
老梗
a () {
    return new Promise((resolve,reject) => {
        getData().then(res => {
            this.data = res.data.reslut
            console.log(this.data)
            resolve(this.data);
        })
    });
}
2017年2月5日 03:55