在回答Aaron's recent question时,我想做以下事情:
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();
}
}
但是,这种反应似乎永远不会奏效。它不喜欢我试图将一个动作分配给变量然后返回该变量。
我做错了什么?
答案 0 :(得分:1)
你真的很亲密。
在无法解决之前,您无法调用操作。您需要创建一个将执行延迟到正确时间的defaction。
变化:
thisaction = isjoe => notify("Hello, World", "Hi there, Joe!") | noop();
到
thisaction = isjoe => defaction(){notify("Hello, World", "Hi there, Joe!");} | noop;
请注意添加的defaction,我从noop
删除了parens。
这个概念类似于javascript闭包。