为了账号安全,请及时绑定邮箱和手机立即绑定

等待所有 JDA RestActions

等待所有 JDA RestActions

慕莱坞森 2023-10-13 09:54:34
我想为 JDA Discord Bot 创建一个(功能)测试系统。为此,我需要等到当前队列中的所有消息都发送完毕(消息使用 发送RestAction#queue)并测试是否有该消息。有没有办法等待所有排队的RestActions或者我应该指数级等待(例如等待0.5秒,等待1秒,等待2秒并测试消息是否存在)[注意] 我不想更改生产代码中的queuetosubmit并将其发送到测试。
查看完整描述

1 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

理想情况下,测试系统根本不应该与互联网交互。但是,要回答您的问题,您可以使用提交返回的承诺而不是使用队列来等待休息操作。

List<CompletableFuture<?>> list = new ArrayList<>();


list.add(action1.submit());

list.add(action2.submit());

...


CompletableFuture<Void> merged = CompletableFuture.allOf(list.toArray(new CompletableFuture[0]));


merged.whenComplete((v, error) -> {

    if (error != null) error.printStackTrace();

    else System.out.println("All futures completed successfully");

});


查看完整回答
反对 回复 2023-10-13
  • 1 回答
  • 0 关注
  • 86 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信