在回答Aaron最近的问题时,我想这样做:
rule first_rule {
select when pageview "exampley.com/?name=(.*)" setting (username)
pre {
isjoe = username eq "joe";
myaction = defaction() {
thisaction = isjoe => notify("Hello, World", "Hi there, Joe!") | noop();
thisaction();
};
}
{
notify("Will it work?", "Methinks you are #{username}");
myaction();
}
}
然而,反抗似乎从来没有起作用。它不喜欢我把一个动作赋值给一个变量然后返回那个变量
我做错了什么?
你真的很接近了。
在背叛结束前你不能调用动作。您需要创建一个分区,将执行延迟到合适的时间。
改变:
thisaction = isjoe => notify("Hello, World", "Hi there, Joe!") | noop();
thisaction = isjoe => defaction(){notify("Hello, World", "Hi there, Joe!");} | noop;
注意添加的歧义,我从noop
中删除了双亲。
这个概念类似于javascript闭包