Я использую прокси-сервер, библиотеку VertX, и у меня возникают некоторые проблемы с обратным вызовом, мой случай использования:Асинхронный прокси-служба называет 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] и ждать их всех, чтобы выполнить мою логику.
Я ищу что-то подобное угловыми JS $q.all(q1,q2)
Любая идея, как я могу это сделать в VertX и службы прокси-сервер?