Javascript 连接平台中的控制输出/信号队列?

Javascript 连接平台中的控制输出/信号队列?,javascript,node.js,Javascript,Node.js,我试图阻止一个空项进入一个对象(在本例中,是在列表的末尾,以简化案例)。控制输出“信号”是否有任何类型的队列,在那里它们被消耗,或者如果信号至少被发送一次,它是否会触发节点 这个问题是针对这个例子的,在这个例子中,它在结尾返回一个不应该返回的空对象,但我仍然有兴趣知道控制输出在不同场景中的行为(这就是一个有趣的场景)。在正常情况下,首先对数组进行过滤,以消除任何“不兼容”(例如未定义)元素 没有控制信号队列。节点的所有控制信号都必须激活,以便节点也能激活 一旦节点完成其执行,其控制标志将重置,

我试图阻止一个空项进入一个对象(在本例中,是在列表的末尾,以简化案例)。控制输出“信号”是否有任何类型的队列,在那里它们被消耗,或者如果信号至少被发送一次,它是否会触发节点

这个问题是针对这个例子的,在这个例子中,它在结尾返回一个不应该返回的空对象,但我仍然有兴趣知道控制输出在不同场景中的行为(这就是一个有趣的场景)。在正常情况下,首先对数组进行过滤,以消除任何“不兼容”(例如未定义)元素

  • 没有控制信号队列。节点的所有控制信号都必须激活,以便节点也能激活
  • 一旦节点完成其执行,其控制标志将重置,但其数据输入引脚不会重置。因此,应再次发出所有控制信号,以便节点激活,但通过其输入引脚接收的参数将保持不变
  • 将数据重新发送到输入管脚时,将覆盖上一个值,因此对于节点的下一次执行,将使用覆盖的值。请注意,节点仍将等待所有控制信号为执行绿灯
这些应该能大致回答你的问题。但更具体地说,对于您手头的用例:您忘记了这些节点是异步执行的,这可能就是为什么您的图形没有按照您的期望运行的原因。这就是可能发生的情况:

  • #iterate
    将向表达式提供一个带有非空
    项的步骤
  • 表达式将此步骤输入到开关和
    /user/key/delete
  • #iterate
    将提供另一个步骤,这次将向表达式提供一个空的
  • 表达式将
    false
    馈送到
    /user/key/delete
  • 当开关完成上一次执行时(使用非空步骤),它将向
    /user/key/delete
    发出绿灯
  • 如您所见,您将在
    false
    上执行
    /user/key/delete
    ,这似乎是您想要避免的。为了避免这个问题,我建议在将数组馈送到
    #iterate
    之前先对其进行过滤

    这一现象的一个更清楚的例子可以通过如下图表看到:

    由于相同的现象,运行此子图将导致打印3个数字,但不一定是偶数