vue $emit 调用父组件异步方法,执行完毕后再执行子组件的某方法
//可以使用回调的方法//父页面//父页面调用组件的html中添加事件@test="test"methods:{test(data,cab){setTimeout(()=>{//这里使用定时器模拟执行完方法console.log(data)//这是传递过来的参数用于处理data++...
// 可以使用回调的方法
// 父页面
// 父页面调用组件的html 中 添加事件 @test="test"
methods : {
test(data, cab) {
setTimeout(() => {
// 这里使用定时器 模拟执行完方法
console.log(data)
// 这是传递过来的参数 用于处理
data++
cab(data)
// 将处理完成的数据返回回去
}, 2000)
}
}
// 子页面
this
.$emit(
'tset'
, 1, (res)=> {
console.log(res)
// 2秒后会执行这一句 打印2
})
// 我们也可以用 Promise 的方法代替 回调
methods : {
test(data) {
return
new
Promise((resolve)=>{
setTimeout(() => {
// 这里使用定时器 模拟执行完方法
console.log(data)
// 这是传递过来的参数 用于处理
data++
resolve(data)
// 将处理完成的数据返回回去
}, 2000)
})
}
}
// 子页面
const res = await
this
.$emit(
'tset'
, 1)
console.log(res)
// 2秒后会执行这一句
更多推荐
所有评论(0)