我想知道是否有类似于 Java 8 的 JavaScript 的“Promise.all”(目前在 Android 上)的东西。我试图在所有回调完成后执行第二个进程。
现在我使用的回调是 lambdas 表达式,但我愿意接受建议来更改执行回调的方式以及所有回调完成时执行的“大回调”。
我用回调计数器来实现,当回调计数器等于回调的长度时,则调用大回调。但我确信这个解决方案不是正确的。
Java 8 将其提供为 CompletableFuture.allOf(CompletableFuture...),它模仿 Promise.all;还有 CompletableFuture.anyOf(CompletableFuture...) 来模仿 Javascript 中的 Promise.race。
如果您使用 ListenableFuture 来代替,Guava 会像 Futures.allAsList(...) 那样执行此操作,同时具有可变参数和可迭代重载。
我为 java 和 kotlin 编写了一个 Promise 库。它更易于使用且轻巧,请在 https://pro4j.com/ 处查看。