这可能是一个在这里问的愚蠢问题。
我只是想知道JavaScript(或任何其他语言中)Streams和Observables之间的区别。我知道它们都是推送数据模型,即在接收到数据时响应而不是拉取数据。如果有人能提供更多关于这两者之间的区别,那就太好了。
我只是想知道JavaScript(或任何其他语言中)Streams和Observables之间的区别。我知道它们都是推送数据模型,即在接收到数据时响应而不是拉取数据。如果有人能提供更多关于这两者之间的区别,那就太好了。
流通常是基于拉取的。在下面的示例中,foreach()
(管道中的最后一个方法)启动管道执行并从源列表中拉取数据。
List<Integer> lst = Arrays.asList(1,2,3);
lst.stream()
.filter(k -> k > 1)
.forEach(k->
System.out.println(k)
);
Observable
(和 Publisher
)是基于推送的。它们自己启动执行并将信息推送到其订阅者。因此,订阅者必须实现一些包含适当方法的接口,该方法接受下一个值。通常,此方法命名为“update”、“onNext”、“post”、“send”等。reactive streams
可以帮助消费者控制生产者的速度,从而将传输策略更改为基于拉取的方式。