问题描述
如标题所述,例如在父组件引用了button子组件,在点击button后,首先会调用button子组件的click
方法,并在click
方法中通过this.$emit("on-btn-click")
触发父组件方法,如何实现等待父组件方法执行完成后再执行button子组件click
方法的剩余代码?
类似于Promise
的多重链式调用
上面描述只是举例,$emit
只是触发父级组件事件肯定无法实现,不知道各位有什么好的解决方案?
如标题所述,例如在父组件引用了button子组件,在点击button后,首先会调用button子组件的click
方法,并在click
方法中通过this.$emit("on-btn-click")
触发父组件方法,如何实现等待父组件方法执行完成后再执行button子组件click
方法的剩余代码?
类似于Promise
的多重链式调用
上面描述只是举例,$emit
只是触发父级组件事件肯定无法实现,不知道各位有什么好的解决方案?
楼上老哥说的第一个方法我再补充一下代码吧
子组件把方法封装给父组件:
this.$emit('select', run => {
this.$message.success('保存成功') // 方法体,或者直接传方法也可以
})
父组件方法:
async select(run) {
// 等待方法执行
await this.getDialysisAdvice()
// 方法执行结束后调用子组件传回来的方法
run()
}
9 回答1.7k 阅读✓ 已解决
6 回答965 阅读
3 回答1.4k 阅读✓ 已解决
4 回答963 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
3 回答870 阅读
3 回答1.3k 阅读✓ 已解决
把将要执行的剩余代码封装成函数传递给父组件,由父组件选择执行时间。
或者,子组件写个props属性,初始由父组件传入为false,当父组件执行完对应代码,改为true,子组件监听此属性