element-ui 的后台,vue 是版本 2。
//...
methods: {
showDialog1() {
// ...
// 弹出第一个窗口,有确认和取消按钮
},
showDialog2() {
// ...
// 弹出第二个窗口,有确认和取消按钮
},
showDialog3() {
// ...
// 弹出第三个窗口,有确认和取消按钮
},
// 第一个窗口确认按钮的点击事件
handleDialog1Confirm() {
this.showDialog3();
},
// 第一个窗口 点击取消按钮
handleDialog1Cancel() {
this.showDialog2();
}
// 第二个窗口确认按钮的点击事件
handleDialog2Confirm() {
this.doMethodA();
},
// 第三个窗口确认按钮的点击事件
async handleDialog3Confirm() {
await this.doMethodB(); // 可能是异步方法
await this.doMethodC();
this.doMethodA();
},
doSomething() {
// 这里需要执行一个类似流程的事件
// 比如 dialog 1 点击了取消,弹出 dialog 2
// dialog 1 点击了确认, 弹出 dialog 3
// dialog 2 点击确认, 直接执行 A 方法。
// dialog 3 点击确认 执行 B C 方法 改变某些数据再执行 A 方法。
},
// ...其余的方法
}
类似以上代码(会有多个弹出窗口和各种依赖操作),有没有更好的组织办法,比如 RxJS 用来控制流程。
不然这样涉及修改的话,方法一个依赖一个修改起来会很麻烦。
学编程的时候,顺序、分支、循环 —— 不就是最基本也最重要的流程控制么?
如果说是因为异步的问题造成了代码流程看不顺眼,那就用 await 写法。