2017-02-25 75 views
0

我想製作一個簡單的界面,使所有異步請求(回調)並同步返回結果。 我可以使用Future可調用,但是我使用的請求是API請求,所以未來將無濟於事。 例如:同步返回API回調值

public boolean login(String user,String pass) { 
    boolean result = false; 
    API_Login(user,pass,new APICallback() { 
     @Override 
     public void done(APIException e) { 
      //logic here 
      result = true; 

     } 
    }); 
    return result; 
} 

我想過使用承諾庫,但話又說回來,我將不得不執行API之外的回調「然後」或承諾的「完成」事件。

回答

0

您可以使用消息代理。 1.啓動請求處理器線程。 2.在此線程中接收API請求。 3.要向下傳組播請求,請使用消息代理。將下游請求發佈給消息代理。在correlationId上啓動一個監聽器。 4a。調度程序組件可以偵聽消息中介&獲取您的下游請求。它實際上將與下游進行通信。 4b。從下游獲取響應(異步)。將此響應發佈給消息中介 5.您的主要聽衆將收到回覆。 6.將回復或超時發送回消費者。

+0

如果我找到你,最終的聽衆也會是異步的嗎? –