从客户端实现的角度来看,我可以比较 Java Callable 和 Angular Observable (RxJS)
from client implementation perspective, can I compare Java Callable to Angular Observable (RxJS)
在有人想对我的问题投反对票甚至关闭之前,我想强调一下,我不是在问哪个更好(当然这是一个无意义的问题,尤其是当我们认为一个专注于服务器端而另一个专注于浏览器端时) .
从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 发生的想法完全相同。我的意思是,例如,我可以使用 callable 调用休息服务,然后在一段时间后获得结果而不会阻塞我的代码并控制最大时间(秒)我会接受这种懒惰的行为。
我仔细阅读了 并且很明显 Java 流与 Angular observables 有很大不同,但我想知道我是否正确理解了 Java可调用和 ExecutorService。
我不是 Java 人,但对我来说 Callable
s 似乎是 Java 脚本中 Promises 的对应物。
在非常简短和粗略的比较中,主要区别是:
Promise
s 和 Callable
s 是拉式的,而 Observables 是推式的,
Promise
s和Callable
s只发射一次数据,然后完成,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
是一样的。您无法控制 Observable 何时作为消费者发出。
但是当然,RxJS 在很多其他方面都不同,但这些是主要原因。
在有人想对我的问题投反对票甚至关闭之前,我想强调一下,我不是在问哪个更好(当然这是一个无意义的问题,尤其是当我们认为一个专注于服务器端而另一个专注于浏览器端时) .
从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 发生的想法完全相同。我的意思是,例如,我可以使用 callable 调用休息服务,然后在一段时间后获得结果而不会阻塞我的代码并控制最大时间(秒)我会接受这种懒惰的行为。
我仔细阅读了
我不是 Java 人,但对我来说 Callable
s 似乎是 Java 脚本中 Promises 的对应物。
在非常简短和粗略的比较中,主要区别是:
Promise
s 和Callable
s 是拉式的,而 Observables 是推式的,Promise
s和Callable
s只发射一次数据,然后完成,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
是一样的。您无法控制 Observable 何时作为消费者发出。
但是当然,RxJS 在很多其他方面都不同,但这些是主要原因。