0

首先,我是 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函数永远不会执行。我的代码有什么问题?或者更好地在这里使用其他方法?如果是,那是什么?

4

0 回答 0