路由失败处理程序在 SmallRye Mutiny Vertx 绑定中被阻止
route failureHandler is blocked in SmallRye Mutiny Vertx bindings
我尝试体验 SmallRye Mutiny Vertx 绑定,complete example codes 可以在我的 Github 上找到。
这样组装路由的时候
router.get("/posts/:id").produces("application/json")
.handler(handlers::get);
//.failureHandler(frc -> frc.response().setStatusCode(404).end());
failureHandler
将阻止请求。
这里的问题是结束 returns 一个 Uni
对象。你可以把它想象成一个函数。这个函数是惰性的。您要做的是 调用 该函数。这可以通过订阅它来实现。
如果您对处理此 Uni
的结果不感兴趣,您可以使用 endAndForget
而不是 end
,后者将为您调用该函数(订阅 Uni
).
如果您想对 Uni
的结果做些什么,您可以改为订阅:
.failureHandler(frc ->
frc.response()
.setStatusCode(404)
.end()
.subscribe().with(ignore -> System.out.println("failure handler is done"))
);
我尝试体验 SmallRye Mutiny Vertx 绑定,complete example codes 可以在我的 Github 上找到。
这样组装路由的时候
router.get("/posts/:id").produces("application/json")
.handler(handlers::get);
//.failureHandler(frc -> frc.response().setStatusCode(404).end());
failureHandler
将阻止请求。
这里的问题是结束 returns 一个 Uni
对象。你可以把它想象成一个函数。这个函数是惰性的。您要做的是 调用 该函数。这可以通过订阅它来实现。
如果您对处理此 Uni
的结果不感兴趣,您可以使用 endAndForget
而不是 end
,后者将为您调用该函数(订阅 Uni
).
如果您想对 Uni
的结果做些什么,您可以改为订阅:
.failureHandler(frc ->
frc.response()
.setStatusCode(404)
.end()
.subscribe().with(ignore -> System.out.println("failure handler is done"))
);