2016-08-05 227 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). 
    
相關問題