4

如何在 Coldfusion 线程中使用函数参数?我不明白为什么会出现以下错误:

元素 SOMEID 在 ARGUMENTS 中未定义。

我的代码的简化示例。

public any function createSomeEntity(required numeric someId) {     
    thread action="run" name="someThread" {
        var result = someFunction(someId = arguments.someId);
        // some logic
    }
    thread action="join" name="someThread" timeout="5000";
    
    if (someThread.status != "COMPLETED") {
        // action 1
    } else {
        // action 2
    }
}       
4

1 回答 1

6

您需要将变量作为属性传递给线程,线程无法访问参数范围。

thread
    action="run"
    name="someThread"
    someId = arguments.someId
    ^^^^^^^^^^^^^^^^^^^^^^^^^
{
    result = someFunction(someId = attributes.someId);
                                   ^^^^^^^^^^
    // some logic
}
于 2020-09-24T16:52:36.767 回答