gpt4 book ai didi

javascript - 如何清除 .zip 队列?

转载 作者:行者123 更新时间:2023-11-29 16:01:33 25 4
gpt4 key购买 nike

我已经基于 RxJS 制作了简单的“游戏循环系统”,我在其中请求来自不同参与者(包括用户)的 Action 并将它们与 .zip 运算符合并。

结果是一个回合制游戏循环,它只在播放动画和请求用户操作时暂停。

由于该系统,用户可以对多个操作进行排队,系统会将它们存储在 .zip 运算符中。但是,如果用户决定改变主意,我想清除该“队列”。

我有一把 fiddle :https://jsfiddle.net/az5pthng/6/

假设用户输入序列 a1、a2、a3、a4,然后想了想,决定将序列更改为 b1、b2、b3、b4。然后再次思考并键入 c1、c2、c3、c4。

目前我有这个输出,显示每个按键都被记录和播放:

(3) ["A", "B", "a1"]
(3) ["A", "B", "a2"]
1100
(3) ["A", "B", "a3"]
(3) ["A", "B", "a4"]
1723
(3) ["A", "B", "b1"]
(3) ["A", "B", "b2"]
(3) ["A", "B", "b3"]
(3) ["A", "B", "b4"]
(3) ["A", "B", "c1"]
(3) ["A", "B", "c2"]
(3) ["A", "B", "c3"]
(3) ["A", "B", "c4"]

但我想要这个输出,表明每当 queueTime$ 发出一个值时 - queue$ 会使用新值“重置”:

(3) ["A", "B", "a1"]
(3) ["A", "B", "a2"]
1100
(3) ["A", "B", "b1"]
(3) ["A", "B", "b2"]
1700
(3) ["A", "B", "c1"]
(3) ["A", "B", "c2"]
(3) ["A", "B", "c3"]
(3) ["A", "B", "c4"]

编辑:这是我正在尝试做的图片:scheme

两个流 - 转弯和 Q

Turn 应该以某种方式请求 A 和 B,并等待 Q 提供它的值(如果有的话)。当 Q 提供值时,Turn 等待一段时间然后重复。然而,Q 按时间打破它的值(我猜是在 .window 的帮助下?)并丢弃任何未发送到 Turn 的值,如果有新的序列进来的话。

最佳答案

不确定我是否正确理解你的问题,但如果你想推迟队列触发(因为用户可能会改变主意,那么你可以使用 debounceTime(1000),其中 1000 毫秒。
如果要清除队列,可以使用与 distinctUntilChanged 相同的运算符认清变化,做任何你想做的事!希望有帮助

关于javascript - 如何清除 .zip 队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52619435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com