vue $emit 调用父组件异步方法,执行完毕后再执行子组件的某方法,如何实现? 50

如题,或者不用$emit能实现也行... 如题,或者不用$emit能实现也行 展开
 我来答
偷阉道鸦枷释7X
2021-04-21 · TA获得超过195个赞
知道小有建树答主
回答量:87
采纳率:100%
帮助的人:79.2万
展开全部
// 可以使用回调的方法

// 父页面
    // 父页面调用组件的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秒后会执行这一句
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式