🌳循环编排
版本支持:v2.9.0+
LiteFlow提供了循环编排表达式组合。
# FOR循环
FOR循环表达式用于固定次数的循环,通常的用法为:
<chain name="chain1">
FOR(5).DO(THEN(a, b));
</chain>
上述表达式表示把a->b这个链路固定循环了5次。
如果你在定义规则的时候并不确定要循环几次,要在代码运行的时候才知道。那你也可以这样定义:
<chain name="chain1">
FOR(f).DO(THEN(a, b));
</chain>
其中f这个节点需要为次数循环组件,返回一个int循环次数,如何定义请参照次数循环组件。
# WHILE循环
WHILE循环表达式用于有条件的循环,通常用法为:
<chain name="chain1">
WHILE(w).DO(THEN(a, b));
</chain>
其中w这个节点需要为布尔组件
,返回一个布尔值,为true则继续循环,如何定义请参照布尔组件。
# ITERATOR迭代循环
ITERATOR迭代循环表达式通常用于集合的循环,通常用法为:
<chain name="chain1">
ITERATOR(x).DO(THEN(a, b));
</chain>
其中x这个节点需要为迭代循环组件,返回一个迭代器,如何定义请参照迭代循环组件。
提示
要注意的是,迭代循环组件只支持java定义,不支持脚本。
# BREAK
LiteFlow同样也支持BREAK语法,代表退出循环。
BREAK关键字可以跟在FOR和WHILE后面,通常用法为:
<chain name="chain1">
FOR(f).DO(THEN(a, b)).BREAK(c);
</chain>
<chain name="chain1">
WHILE(w).DO(THEN(a, b)).BREAK(c);
</chain>
其中c这个节点需要为布尔组件
,返回一个布尔值,为true则退出循环。如何定义请参考布尔组件。
提示
BREAK关键字是在每次循环的末尾进行判断的。
# 循环下标和循环对象获取
循环表达式内的任意节点都可以获得当前循环的下标,如果是迭代循环,则可以获得循环对象
# 循环下标获取:
在java组件中可以通过this.getLoopIndex()
来获得下标。
在脚本中通过_meta.loopIndex
来获取。
# 循环对象获取:
在java组件中可以通过this.getCurrLoopObj()
来获取循环对象。
在脚本中通过_meta.loopObject
来获取。
# 异步循环v2.11.0+
LiteFlow支持了异步循环特性,关于异步循环请参考高级特性中的异步循环模式。
帮助我们改善此文档 (opens new window)
上次更新: 2024/04/12, 13:39:38