等待所有 JDA RestActions

我想为 JDA Discord Bot 创建一个(功能)测试系统。

为此,我需要等到当前队列中的所有消息都发送完毕(消息使用 发送RestAction#queue)并测试是否有该消息。

有没有办法等待所有排队的RestActions或者我应该指数级等待(例如等待0.5秒,等待1秒,等待2秒并测试消息是否存在)

[注意] 我不想更改生产代码中的queuetosubmit并将其发送到测试。


慕莱坞森
浏览 87回答 1
1回答

一只斗牛犬

理想情况下,测试系统根本不应该与互联网交互。但是,要回答您的问题,您可以使用提交返回的承诺而不是使用队列来等待休息操作。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");});
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java