Java 如何將 Callback 轉 Promise?場景之前 Java 使用回調函數(shù)實現(xiàn)了等待指定資源加載然后執(zhí)行回調,現(xiàn)在想修改為 Promise 風格的,有什么好的方法么?例如void watch(Predicate<String> f, Consumer<Stat> callback)轉換成Future<Stat> watch(Predicate<String> f)順便說一下,吾輩在 JavaScript 中倒是習慣了 Promise 的異步,但 Java 中卻是不怎么熟悉呢。。。下面是將 setTimeout 封裝為 Promise 的代碼var wait = ms => new Promise(res => setTimeout(res, ms))所以,有什么好的解決方案么?吾輩知道 Java 中有 CompletedFuture 和 CompletableFuture,然而不知道的是如何創(chuàng)建一個 CompletableFuture 對象并在構造過程中使用綁定的回調函數(shù)例如吾輩確實可以將下面這種代碼轉換為柯里化的函數(shù)default void watch(String path, Consumer<Stat> callback) {
watch(map -> map.get(ListUtil.ListDiffState.right).stream()
.filter(stat -> Objects.equals(stat.getPath(), path))
.findFirst(), callback);
}轉換后default Consumer<Consumer<Stat>> watch(String path) { return callback -> watch(path, callback);
}然而,吾輩卻無法將之轉換為 CompletedFuture 異步風格(拿不到 CompletedFuture 綁定的回調函數(shù)),求教!
添加回答
舉報
0/150
提交
取消