java - 异步服务代理调用vertx

标签 java java-8 vert.x

我正在使用 vertx 的服务代理库,我在回调方面遇到了一些问题,我的用例是:

Q1 --> Q2 ---->Q3,到目前为止我所做的是:

 insertOrUpdate(query, client, updateBuildingNode -> {

            if (updateBuildingNode.succeeded()) {

                userService.getUserbyId(user, getUserRes -> {

                    User currentUser = Json.decodeValue(getUserRes.result().get(0).toString(), User.class);
                    userService.removeNodeFromUser(new JsonObject().put("user", new JsonObject(Json.encode(currentUser))).put("nodeUid", buildingUid), removeNodeFromUserRes -> {

                        if (removeNodeFromUserRes.succeeded()) {
                            if(currentUser.getFavoriteBuilding()!=null && currentUser.getFavoriteBuilding().equalsIgnoreCase(buildingUid)) {


                                userService.removeNodeAsFavorite(new JsonObject().put("userUid", userUid).put("nodeUid", buildingUid), resultHandler);

                            }
                            else
                            {

                                resultHandler.handle(Future.succeededFuture(Boolean.TRUE));
                            }
                        } else {
                            resultHandler.handle(Future.failedFuture(removeNodeFromUserRes.cause()));
                        }
                    });


                });
            }
            else {
                resultHandler.handle(Future.failedFuture(updateBuildingNode.cause()));
            }

        });

我的问题是我想像 Q1 和 Q2 这样的调用等待它们结束并运行 Q3,我还有另一个请求,我需要循环 Q[i] 并等待它们全部完成我的逻辑。

我正在寻找类似于 angular js $q.all(q1,q2)

的东西

知道如何在 vertx 和服务代理中执行此操作吗?

最佳答案

看看 Async Coordination文档中的部分。如果您经常将不同的事件源混合在一起,您也可以从切换到 Vert.x API for RxJava 中受益。 .

关于java - 异步服务代理调用vertx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41884343/

相关文章:

java - 通过 java 2D ArrayList 字符串进行矩阵搜索以查找重复实例,广度优先?

java - 如何根据另一个bean的属性注入(inject)一个bean?

java - 如何使用内存文件中的vertx创建可下载文件api

java - Java多线程帮助

java - 如何使用 javahome\logging.properties 更改日志消息的颜色?

java - 将二进制数据转换为字符串

java - 如何在 Java 中使用 lambda 表达式搜索集合?

lambda - optional <List> Java 8 lambda 表达式获取第一个元素

javascript - 关于使用 ajax 发布请求的问题

javascript - 如何从我自己的 GMail 访问 GMail API?