如何将回调转换为 Promise
How to Convert callback to a Promise
我正在使用 play 框架和 Apache Kafka。
我有一个 POST 方法可以向 Kafka 发送消息。 Kafka 有一个 API 方法
public java.util.concurrent.Future发送(ProducerRecord记录,
回调回调)
其中 Javadoc 说
Asynchronously send a record to a topic and invoke the provided
callback when the send has been acknowledged.
我正在使用 play 框架公开此功能。我想从 Controller 方法 return a Promise<Result>
但不知道如何以非阻塞方式实现它。有人可以帮我解决这个问题吗?
经过一番搜索,在 的帮助下找到了答案。
代码如下
RedeemablePromise<Result> promise = RedeemablePromise.empty();
kafkaProducer.send(record, (metadata, ex) -> {
if (ex != null) {
promise.failure(ex);
} else {
promise.success(created(Json.toJson(new ProduceResult())));
}
});
我正在使用 play 框架和 Apache Kafka。
我有一个 POST 方法可以向 Kafka 发送消息。 Kafka 有一个 API 方法
public java.util.concurrent.Future发送(ProducerRecord记录, 回调回调)
其中 Javadoc 说
Asynchronously send a record to a topic and invoke the provided callback when the send has been acknowledged.
我正在使用 play 框架公开此功能。我想从 Controller 方法 return a Promise<Result>
但不知道如何以非阻塞方式实现它。有人可以帮我解决这个问题吗?
经过一番搜索,在
代码如下
RedeemablePromise<Result> promise = RedeemablePromise.empty();
kafkaProducer.send(record, (metadata, ex) -> {
if (ex != null) {
promise.failure(ex);
} else {
promise.success(created(Json.toJson(new ProduceResult())));
}
});