Async While(异步循环)
Async While(异步循环)
Async While(异步循环)节点是 While 节点的异步变体。它用于执行循环操作,允许在条件保持为真时持续触发脉冲。
危险:使用此节点开发时请务必小心。没有用于调试的迭代限制,且ProtoFlux 没有处理执行时间过长的机制。如果您意外创建了没有任何延迟的无限循环,将无法保存进度或任何其他重要内容。建议添加自己的迭代限制,开发时不要连接到输入脉冲,并在测试前保存!
输入 (Inputs)
| 名称 (Name) | 描述 (Description) |
|---|---|
| * (IAsyncOperation) | 开始 while 循环。 |
| Condition (bool) | 循环将检查的条件,以确定是否应再次迭代。如果为 True,则再次迭代。 |
输出 (Outputs)
| 名称 (Name) | 描述 (Description) |
|---|---|
| LoopStart (AsyncCall) | 在 * 被触发后、任何迭代执行前触发。即使在循环开始时 Condition 为 False 也会触发。 |
| LoopIteration (AsyncCall) | 只要 Condition 为 True 就会触发。仅当当前循环迭代的上下文完成后,下一次迭代才会触发。 |
| LoopEnd (Continuation) | 在 Condition 变为 False 后触发,继续之前的脉冲链。 |
已知问题 (Known Issues)
- 截至撰写本文时,存在一个已知问题:如果
LoopIteration链中的最后一个节点是 Write(写入)节点,该节点修改了用于条件判断的变量,并且写入的值基于该变量,那么写入操作将使用先前缓存的值。这可能导致多执行一次循环迭代,调试起来非常麻烦。- 解决此问题最简单的方法是在写入节点后添加一个“虚拟”节点,例如 Impulse Display(脉冲显示),或者如果调试大量脉冲且不希望出现延迟,可以使用一个空的 Write 节点。
参见 (See Also)
- 如果可以预先确定需要循环的次数,请考虑使用 Async For(异步循环)节点。

No comments to display
No comments to display