当前位置: 首页 > 面试题库 >

如何将回调转换为Promise

臧弘和
2023-03-14
问题内容

我正在使用播放框架和Apache Kafka。

我有一个POST方法,它将消息发送到Kafka。Kafka有一个API方法

public java.util.concurrent.Future
send(ProducerRecord记录,回调回调)

其中Javadoc说

异步将记录发送到主题,并在确认发送后调用提供的回调。

我正在使用play框架公开此功能。我想Promise<Result>从Controller方法返回a
,但无法弄清楚如何以非阻塞方式实现它。有人可以帮我弄这个吗?


问题答案:

经过一番搜索后,在此帮助下找到了答案。

以下是代码

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方法 公共java.util.concurrent。未来发送(生产记录记录、回调) 其中Javadoc说 异步发送记录到主题,并在发送被确认时调用提供的回调。 我将使用play框架公开此功能。我想返回一个<代码>promise

  • 问题内容: 我想使用Promise,但是我有一个类似以下格式的回调API: 1. DOM加载或其他一次事件: 2.普通回调: 3.节点样式回调(“ nodeback”): 4.带有节点样式回调的整个库: 如何在promise中使用API​​,如何“承诺”它? 问题答案: 承诺有状态,它们从待定状态开始,可以解决: 完成 意味着计算成功完成。 拒绝 表示计算失败。 承诺返回函数 绝不应该抛出,而应该

  • 问题内容: 以下函数从url获取图像并进行加载,然后返回其宽度和高度: 问题是,如果我做这样的事情: 我得到,因为该函数运行但图像尚未加载。 仅当照片已加载且宽度和高度已可用时,如何使用等待/异步返回值? 问题答案: 如何使用/ 将此回调函数转换为Promise? 你不知道与往常一样,您可以使用构造函数。没有语法糖。 仅当照片已加载且宽度和高度已经可用时,如何使用/ 记录值? 你可以做

  • 问题内容: 我想使用Promise,但是我有一个类似以下格式的回调API: 1. DOM加载或其他一次事件: 2.普通回调: 3.节点样式回调(“ nodeback”): 4.带有节点样式回调的整个库: 如何在Promise中使用API​​,如何“承诺”呢? 问题答案: 承诺具有状态,它们从待定状态开始,可以解决: fulfilled成 意味着计算成功完成。 fulfilled 表示计算失败。 承

  • 问题内容: 我使用以下代码将密钥转换为字节 现在如何从中获取密钥?我试过了: 我收到以下错误: 问题答案: 这应该工作

  • 问题内容: 也许我是Swift中第一个这样做的人,但在Swift中使用&/ inout和uint8_t似乎在网上没有任何东西。有人可以翻译一下吗?这种关系是按位的吗? 目标C 快速尝试 问题答案: 返回一个,可以通过将其转换为指针 Swift 3(Xcode 8)的更新,Swift 5(Xcode 11)的检查: