当前位置: 首页 > Web前端 > HTML

弹窗组件递归循环调用顺序问题的解决方法

时间:2023-03-28 14:42:01 HTML

我在上一篇文章中说过,我们现在需要的是一种可以通过这种方式调用弹窗子组件的方法。比如像上面的结构,如果我们改变任务1,那么处理顺序应该如下图所示:任务1任务1.1任务1.1.1任务1.1.2任务1.1.2.1任务1.1.3任务1.2任务1.2.1task1.2.2但是我们每次调用对应task的弹窗,只能拿到task的post-task,那么怎么保证顺序呢?第一次:手动修改任务1deadline调用任务1弹窗,获取任务1.1,任务1.2,反转后压入栈,处理任务1.1。此时任务栈:任务1.1任务1.2第二次:自动处理栈顶任务——任务1,获取后续任务——任务1.1.1,任务1.1.2,任务1.1.3,逆推入栈,处理任务1.1.1此时任务栈:任务1.1.1任务1.1.2任务1.1.3任务1.2第三次:重复第二次操作,处理完任务栈:任务1.1.2Task1.1.3Task1.2第四次:获取1.1.2的后继者入栈Task1.1.2.1Task1.1.3Task1.2第五次:Task1.1.3Task1.2第六次:Task1.2第七次:Task1.2.1Task1.2.2第八次:Task1.2.2了解执行顺序那么如何在前台按照这个顺序执行——我们可以直接在父组件中设置一个task数组来存储和处理弹出窗口中的任务如上文所述的任务栈。代码部分我就不细说了,大致的执行流程如下:确保弹窗依次弹出,而不是同时弹出多个弹窗。另外,本周写这个项目最大的感触就是——尽量不要修改原代码,尽量不要在不了解的情况下使用原项目的写法。比如原来的项目使用状态模式。我们不太了解这种写作方式。在这种情况下,随意调用原始代码可能会触发一些隐藏的错误。即使在测试中没有发现,由于经验不足,我们也不能确定不会有其他影响。