我正在学习Mule Dev 1课程,并且陷入模块内容和我在实践中看到的东西之间。
模块内容指出:
“使用一系列功能时,链中的最后一个功能将首先执行。”
所以
filghts orderBy $.price filter ($.availableSeats > 30)
“先过滤,然后按orderBy”。
但是,我看到以下语句:
payload.flights orderBy $.price filter $.price < 500 groupBy $.destination
实际上并不首先执行groupBy。实际上,将groupBy放置在其他任何地方都会引发错误(因为更改了groupBy之后的输出架构)。
这里有任何关于为什么模块模块声明最后一个函数首先执行的想法,这显然不是这种情况?
谢谢!
答案 0 :(得分:5)
(orderBy,groupBy等)的优先级都相同。 因此,它将首先按价格执行orderBy,然后按价格进行过滤,最后将其按目的地分组。
这与dw 1(m子3.x)和dw 2(m子4.x)相同。现在,这与DW版本之间的区别在于,在DW1中,所有这些以前都是lang运算符,而在DW 2中,它们只是使用中缀表示法调用的函数。因此,这意味着您可以使用前缀表示法
编写相同的内容filter(
orderBy(filghts, (value, index) -> value.price),
(value, index) -> value.availableSeats > 30)
仅向您展示这是此表达式的AST。