函数再执行另一个函数(Promise用法)"/>
Vue:执行完一个函数再执行另一个函数(Promise用法)
几个活动同时进行,开始结束时间不同。在点击报名时间需检测是否在活动期间。需要异步获取活动时间并跟当前时间进行比较。这里用到了Promise
data(){return{activeStart:"",//活动开始时间activeEnd:"",//活动结束时间}
},
methods:{//获取活动时间(方法一)getActiveTime(event){return new Promise((resolve, reject) => {/*后台数据获取过程成功*/if (response.data.status==1) {console.log(response.data.data)this.activeStart = new Date(response.data.data.start_time.replace(/-/g,"/")).getTime();this.activeEnd = new Date(response.data.data.end_time.replace(/-/g,"/")).getTime();resolve(this.activeStart,this.activeEnd) //resolve()返回数据}else{console.log(response);}/*后台获取数据通过resolve()返回数据*/})},//科技辅导员培训一期(方法二)checkNameOne(){Promise.all([this.getActiveTime(101) //101是活动id后台获取时间需要提供的,可忽略//this.otherMethods() 其他需要执行的方法]).then(res => {console.log("其他代码段")})},
}
也可以这样:
funOne(){return new Promise((resolve, reject) => {//需要执行的代码resolve(/*需要返回的数据*/)});
},funTwo(){return new Promise((resolve, reject) => {//需要执行的代码resolve(/*需要返回的数据*/)});
},// 调用
funCall(){//funOne() 先执行再执行funTwo()this.funOne().then(val => {this.funTwo();});
},//按照顺序调用多个方法
runFunAll(){Promise.all([this.funOne(),this.funTwo(),/*this.funThree(),this.funOther(),*/]).then(res => {//需要执行的代码console.log("按顺序从上到下执行方法结束后再执行此处");})
}
更多推荐
Vue:执行完一个函数再执行另一个函数(Promise用法)
发布评论