所有,我可以在规则体内运行多个defaction吗?或者我只能跑一个?
答案 0 :(得分:3)
您可以根据需要在规则的pre
块中定义任意数量的操作。您可以根据需要在规则的操作块中包含任意数量的操作(只需将操作块括在花括号中)。例如,
rule first_rule {
select when pageview ".*" setting ()
pre {
notify_one = defaction() { notify("notify_one", "First defaction"); };
notify_two = defaction() { notify("notify_two", "Second defaction"); };
}
{
notify_one();
notify_two();
}
}
所以我认为你的问题的答案是肯定的。
答案 1 :(得分:2)
你的问题有点令人困惑,但我会试一试。
使用defaction
定义的运行操作就像运行系统定义的操作一样。
如果您想在规则中运行多个操作,则需要将它们包装在{}中,如下所示:
rule foo {
select when pageview ".*"
{
notify("cheese", "brie");
notify("apple", "golden delicious");
}
}
答案 2 :(得分:1)
我似乎记得defaction有一个隐含的,可选的'pre'部分,然后是action(s)。如Sam所说,要包含多项操作,您需要{}。
act1 = defaction() {
{
notify("Defaction Demo", "<ul id='demo_id'></ul>");
append("#demo-id", "<li>cheese: brie</li>");
append("#demo-id", "<li>apple: golden delicious</li>");
}
};
这对defaction() { { ... } };
有效,但如果你想在defaction中有多个动作,则需要额外的花括号。