鍍金池/ 問答/HTML/ element-ui的MessageBox怎么倒計時自動關(guān)閉?

element-ui的MessageBox怎么倒計時自動關(guān)閉?

需要實現(xiàn)一個倒計時自動關(guān)閉的MessageBox彈框,但是翻了一遍api沒有找到方法,網(wǎng)上查到一種不太理想的解決方案,如下:

MessageBox.alert('錯誤信息', '錯誤提示', {
  confirmButtonText: '確認',
  type: 'error',//success,error,info和warning
  callback: action => {
    window.location.href = "/login"
   }
})

setTimeout(() => {
  MessageBox.close();
}, 3000);

現(xiàn)在可以通過MessageBox.close();關(guān)閉彈框,但是,有幾個問題:
1、這種關(guān)閉方式關(guān)閉彈框,但是不會觸發(fā)callback,也就是說callback的邏輯代碼需要些到兩個地方——callback、setTimerout。
2、通過MessageBox.close();關(guān)閉彈框,但是定時器沒有清楚,假設用戶在1s觸發(fā)彈框,并且立馬關(guān)閉,立即再次觸發(fā)彈框,這個時候,彈框可能不到1s就自動關(guān)閉了。

回答
編輯回答
不歸路

取消MessageBox了,改用Message,非常方便。

1、感覺前者更加趨向于主動提示,后者更加趨向于被動提示——調(diào)用服務器api接口異步返回。
2、前者不方便,每次彈出,就無法進行ui操作了,后者更加人性化。

2017年1月6日 19:40
編輯回答
只愛你

這其實跟ele-ui沒多大關(guān)系,這是js的基礎(chǔ)知識,clearTimeout方法了解一下

2018年2月23日 15:51