在Javascript上对事件进行排队然后以正确的顺序(FIFO)依次触发它们的正确和最佳方法是什么。
我做了类似的事情:
https://jsfiddle.net/zjsh0xq3/
我的组件从Vuex / Vue实例获取状态,并根据DOM位置进行同步(如果这些组件将从外部调整大小)。对于这个例子,我创建了List
组件的项目位置,但想法是一样的。
因此,在ListItem
上触发方法后,父组件List
将这些事件(操作数据)存储在数组中。然后,事件以正确的顺序一个接一个地被触发,但是只有在$emit
被回复的情况下向List
发出回调时,在Vuex / Vue实例中已经更改了List的状态。
有没有人有更好的想法来解决这个案例或某个现成的排队事件工具?
我想到了本文中的承诺: https://gist.github.com/anvk/5602ec398e4fdc521e2bf9940fd90f84
但我不知道在调用回调之前如何防止承诺被解决。
感谢您的建议!