首页 > 解决方案 > 在 VueJS / Javascript 中存储然后触发顺序事件的方式(承诺)

问题描述

什么是在 Javascript 上对事件进行排队,然后以正确的顺序(FIFO)一个接一个地触发它们的正确和最佳方法。

我做了这样的事情:

https://jsfiddle.net/zjsh0xq3/

我的组件正在从 Vuex / Vue 实例获取状态,并根据 DOM 位置进行同步(如果这些组件将从外部调整大小)。对于这个例子,我用List项目的位置制作了组件,但想法是一样的。

ListItem因此,在我在父组件上触发方法之后,List将这些事件(用于操作的数据)存储在数组中。然后事件以正确的顺序一个接一个地触发,但前提是有一个从$emit触发的回调说List这个 List 的状态已经在 Vuex / Vue 实例中改变了。

有没有人有更好的想法来解决这种情况或在某个地方准备好用于排队事件的工具?

我想到了这篇文章中的承诺: https ://gist.github.com/anvk/5602ec398e4fdc521e2bf9940fd90f84

但我不知道如何防止在调用回调之前解决承诺。

感谢您的建议!

标签: javascriptvue.jspromiseevent-handlingqueue

解决方案


推荐阅读