首先,我是 Java 的新手。我想要实现的是在返回它们之前等待异步结果。
MainActivity.java:
...
private SendTransport.Listener sendTransportListener = new SendTransport.Listener() {
@Override
public String onProduce(JSONObject data) {
String result = receiveResult(data);
return result;
}
};
private String receiveResult(JSONObject data) throws InterruptedException {
String result = "";
final CountDownLatch latch = new CountDownLatch(1);
socket.emit("receive-result", data, new Ack() {
@Override
public void call(Object... args) {
result = args[1];
latch.countDown();
}
});
latch.await();
return result;
}
...
在上面的代码中,socket.emit
函数永远不会执行。我的代码有什么问题?或者更好地在这里使用其他方法?如果是,那是什么?