2016-08-05 182 views
1

我有一个函数,执行一些逻辑,然后运行成功回调函数或失败回调函数。如何将参数传递给Erlang中的回调函数?

下面是代码:

some_function() -> 
    ArgumentsForCallback = [], 
    check_some_condition(Input, fun success_callback/1, fun fail_callback/1). 

我如何通过ArgumentsForCallback的回调?

+0

你可以请发布'check_some_condition'的来源吗?它是否使用0参数调用回调函数? – Dogbert

+0

你是对的,回调函数被调用时没有看起来是错误的方法。我应该将参数传递给'check_some_condition',然后在'check_some_condition'函数中用它们调用回调函数吗? –

回答

8

有两种方式:

  1. 传递参数给check_some_condition,使该函数发送参数的回调:

    check_some_condition(Input, ArgumentsForCallback, Success, Fail) -> 
        Success(ArgumentsForCallback). 
    
    some_function() -> 
        ArgumentsForCallback = [], 
        check_some_condition(Input, ArgumentsForCallback, fun success_callback/1, fun fail_callback/1). 
    
  2. 发送匿名函数check_some_condition

    check_some_condition(Input, 
        fun() -> success_callback(ArgumentsForCallback) end, 
        fun() -> fail_callback(ArgumentsForCallback) end). 
    
相关问题