Javascript 像 Java 8 上的“Promise.all”(可能带有 lambdas)
Posted
技术标签:
【中文标题】Javascript 像 Java 8 上的“Promise.all”(可能带有 lambdas)【英文标题】:Javascript Like "Promise.all" on Java 8 (maybe with lambdas) 【发布时间】:2019-06-22 20:24:50 【问题描述】:我想知道是否有类似于 Java 8(目前在 android 上)的 javascript 的“Promise.all”的东西。我正在尝试在所有回调完成时进行,然后执行第二个进程。
现在我使用的回调是 lambdas 表达式,但我愿意接受有关更改回调方式和所有回调完成时执行的“大回调”的建议。
我使用回调计数器来实现,当回调计数器等于回调长度时,就会调用大回调。但我确信这个解决方案不是正确的。
【问题讨论】:
【参考方案1】:Java 8 将其提供为 CompletableFuture.allOf(CompletableFuture...),它模仿 Promise.all;还有CompletableFuture.anyOf(CompletableFuture...)在Javascript中模仿Promise.race。
如果您改用 ListenableFuture,Guava 会以 Futures.allAsList(...) 执行此操作,同时具有可变参数和可迭代重载。
【讨论】:
请注意,与Promise.all()
不同,allOf()
不返回结果数组 - 您需要保留对原始 Future 对象的引用,并在调用 @ 后对每个对象调用 get()
987654329@ 声明。以上是关于Javascript 像 Java 8 上的“Promise.all”(可能带有 lambdas)的主要内容,如果未能解决你的问题,请参考以下文章