我有以下的情況下,我需要在我的代碼來處理:的Java實現來處理回調消息
public class Class1 {
IRequester requester;
public Class1(Requester impl) {
requester = impl;
}
public List doSomething() {
requester.request1(); // sends messages to a set of nodes
//do some more local processing
list = requester.request2(); // sends some more messages and returns a list
return list;
}
}
在這種情況下request1()將請求發送到一組節點,並返回這將是一個結果用於本地處理更多,然後request2()返回一個列表。這需要在doSomething()的執行結束時返回。 request1()和請求2()通過請求者這類型的IRequester
public interface IRequester {
request1();
List request2();
}
現在request1()和請求2()由實際執行請求的類來實現完成。這是處理節點之間通信的類。
public NetworkManager implements IRequester {
request1() {
// Create an operation
// Add callback to the operation
// schedule operation
}
request2() {
}
}
現在,我的問題是,當我實現request1()在這裏有我需要創建將消息發送到該節點的過程。此過程可以附帶回調。節點響應時返回結果。我如何實現這個功能,以便在我的請求1結束時返回結果?
你不能,因爲你不知道它需要多長時間到節點得到的信息爲你準備好,你需要他們之間的一個回調 –