gpt4 book ai didi

java - 从客户端实现的 Angular 来看,我可以将 Java Callable 与 Angular Observable (RxJS) 进行比较吗

转载 作者:行者123 更新时间:2023-12-02 02:29:44 26 4
gpt4 key购买 nike

在有人考虑否决甚至关闭我的问题之前,我想强调一下,我并不是在问哪个更好(这当然是一个无意义的问题,特别是当我们认为一个专注于服务器端而另一个专注于浏览器端时)。

来自http://winterbe.com/posts/2015/04/07/java8-concurrency-tutorial-thread-executor-examples/我们看这个简单的例子:

ExecutorService executor = Executors.newFixedThreadPool(1);
Future<Integer> future = executor.submit(task);

System.out.println("future done? " + future.isDone()); // prints future done? false

Integer result = future.get();

System.out.println("future done? " + future.isDone()); // prints future done? true
System.out.print("result: " + result); //result: 123

嗯,添加我可以控制何时调用 future.get() 的想法与 Observable 实际上发生的想法几乎相同。我的意思是,例如,我可以使用可调用调用休息服务,然后在一段时间后获得结果,而不会阻塞我的代码并控制我会接受这种懒惰行为的最大时间(秒)。

我仔细看了Difference between Java 8 streams and RxJava observables很明显,Java 流与 Angular observables 有很大不同,但我想知道我对 Java callable 和 ExecutorService 的理解是否正确。

最佳答案

我不是Java人,但对我来说Callables似乎是Promises的对应物在 JavaScript 中。

非常简短和粗略的比较中,主要区别是:

  • PromiseCallable 是基于拉取的,而 Observables 是基于推送的,
  • PromiseCallable 仅发出一次数据,然后完成,Observables 发出多次

Well, adding the idea that I can control when call future.get() is pretty the same idea happening with Observable in practical terms.

不,作为消费者,控制何时调用 get 与控制何时对 Promise 调用 then 是一样的。您无法控制可观察对象何时作为消费者发出。

但是 ofc、RxJS 在很多其他方面都有所不同,但这些是主要原因。

关于java - 从客户端实现的 Angular 来看,我可以将 Java Callable 与 Angular Observable (RxJS) 进行比较吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47340208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com