关于Promise在vue动态组件中的应用
最近在写项目的时候需要“在vue中动态生成一个弹出层”,查找资料的时候偶然发现了一个关于Promise的用法,如下:
showPopupFrame(){
this.showPopupFrameBtnDisable = true
this.$loginFrame().then(res=>{
// resolve时执行
console.log(res)
}).catch(err=>{
// reject时执行
console.log(err)
}).finally(()=>{
// 无论结果如何都执行
this.showPopupFrameBtnDisable = false
})
}
生成组件以后,调用组件的地方可以监听组件动向,并根据此做出不同的操作,非常适用于各种需要交互的弹窗
一、 Promise
Promise是在es6(ECMAScript 6.0
)中的新特性,它是异步编程的一种解决方案。基本使用方法如下:
// 定义一个Promise对象
const wait = ms => {
return new Promise((resolve,reject)=>{
if(ms>10000){
// 如果ms大于10000则提交错误,执行catch
reject(ms+'毫秒太多了!')
}else{
// 否则执行then
setTimeout(()=>{
resolve(ms+'毫秒过去了...')},ms)
}
})
}
// 执行catch