我有一些CompletableFutures,我想并行运行它们,等待正常返回的第一个.
我知道我可以CompletableFuture.anyOf用来等待第一次返回,但这将正常或异常返回.我想忽略异常.
List<CompletableFuture<?>> futures = names.stream().map(
(String name) ->
CompletableFuture.supplyAsync(
() ->
// this calling may throw exceptions.
new Task(name).run()
)
).collect(Collectors.toList());
//FIXME Can not ignore exceptionally returned takes.
Future any = CompletableFuture.anyOf(futures.toArray(new CompletableFuture<?>[]{}));
try {
logger.info(any.get().toString());
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud) 我想要一个像下面这样的功能,这可能吗?事实上,我不知道Pattern是否存在.
fun1 a :: Pattern a -> a -> Bool
fun1 pattern a = case a of
pattern -> True
_ -> False
Run Code Online (Sandbox Code Playgroud) 如何使用 react-admin 实现自动保存/后台保存功能?
我在编辑富文本输入字段时想要一个功能,例如富文本,后台保存会将我的文本推送到服务器,而无需触摸我的焦点和编辑位置。
我尝试使用 EditController 和 SimpleFrom,这将重新渲染表单并从服务器获取记录器,并失去焦点和编辑位置。请问有什么例子或建议吗?
作为scala和scalaz的新手,当使用promise时,遇到了问题.我的代码是这样的.
import scalaz._
import Scalaz._
object Main2 extends Application {
def sleeper() = {
Thread.sleep(2000)
}
val message = promise {
println("begin")
sleeper
println("ok")
"ok"
}
Thread.sleep(5000)
println("try to get")
println(message())
}
Run Code Online (Sandbox Code Playgroud)
此输出如下,看起来很奇怪.似乎没有调用sleeper方法,并且线程被阻塞. -
begin
try to get
Run Code Online (Sandbox Code Playgroud)
但是,如果我更换睡眠者呼叫内联睡眠,它看起来很好 -
object Main2 extends Application {
def sleeper() = {
Thread.sleep(2000)
}
val message = promise {
println("begin")
Thread.sleep(2000)
println("ok")
"ok"
}
Thread.sleep(5000)
println("try to get")
println(message())
}
Run Code Online (Sandbox Code Playgroud)
输出在这里 -
begin
ok
try to get
ok
Run Code Online (Sandbox Code Playgroud)
我不明白为什么,请问大师请指教?