[RxJS] Replace zip with combineLatest when combining sources of data

This lesson will highlight the true purpose of the zip operator, and how uncommon its use cases are. In its place, we will learn how to use the combineLatest operator.

const length$ = Rx.Observable.of(5, 4);
const width$ = Rx.Observable.of(7,1);
const height$ = Rx.Observable.of(2.8, 2.5);

const volume$ = Rx.Observable
  .zip(length$, width$, height$,
    (length, width, height) => length * width * height
  );

volume$.subscribe(function (volume) {
  console.log(volume);
});

zip requiers each observable has synchronized emissions.  It means:

const length$ = Rx.Observable.of(5);
const width$ = Rx.Observable.of(7);
const height$ = Rx.Observable.of(2.8, 2.5);

2.5 won‘t be calculated only when lenth$ and width$ provide second value.

In this case we can use combineLatest instead of zip:

const length$ = Rx.Observable.of(5);
const width$ = Rx.Observable.of(7);
const height$ = Rx.Observable.of(2.8, 2.5);

const volume$ = Rx.Observable
  .combineLatest(length$, width$, height$,
    (length, width, height) => length * width * height
  );

volume$.subscribe(function (volume) {
  console.log(volume);
});
时间: 2025-01-07 04:56:34

[RxJS] Replace zip with combineLatest when combining sources of data的相关文章

RxJS 6有哪些新变化?

我们的前端工程由Angular4升级到Angular6,rxjs也要升级到rxjs6.  rxjs6的语法做了很大的改动,幸亏引入了rxjs-compact包,否则升级工作会无法按时完成. 按照官方的建议,逐步将原rxjs语法改为rxjs6后,要去掉rxjs-compact包. rxjs-compact包无法转换一些语法,我们的工程中没用到这些特性,原rxjs代码可以转为rxjs6. 原文链接:https://segmentfault.com/a/1190000014956260 RxJs 6于

python 解压 zip 文件

python 解压压缩包 使用 python 的 zipfile 模块 对同一目录下的所有 zip 文件解压,也可以指定解压文件名 import os import sys import zipfile def unzip(filename: str): try: file = zipfile.ZipFile(filename) dirname = filename.replace('.zip', '') # 如果存在与压缩包同名文件夹 提示信息并跳过 if os.path.exists(dir

暴力穷举zip压缩文件的密码

生成密码的方式类似与时钟,末尾遍历完了第k位所有的字符,就让第k位的前一位到下一位字符,第k位回到第0个字符. 对python还不太熟悉,效率比较低,但是能破解简单的密码. import zipfile #密码可能有的字符 testSetstr = "w.abcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#$%&'()*+,-/:;<=>[email protected][\]^_`{|}~"

Zip文件格式

官方文档 https://pkware.cachefly.net/webdocs/APPNOTE/APPNOTE-6.2.0.txt 格式说明 在官方文档中给出的ZIP格式如下: Overall .ZIP file format: [local file header 1] [file data 1] [data descriptor 1] . . . [local file header n] [file data n] [data descriptor n] [archive decrypt

ReactiveX序列——RxSwift

ReactiveX序列--RxSwift 从本篇博客开始,我将叙述一序列ReactiveX模式的讲解,ReactiveX是微软推出的开源一个项目,里面包含了RxJava,RxJs,RxSwift,RxCpp,Rx.Net,RxPhp等一序列的Functional Reactive Programming(FRP,函数响应式编程).从这篇博客开始我将详细介绍以上提到的6个语言RX的FRP,及其内部具体实现. Swift是苹果公司新推出的一门现代化的编程语言,并且将其开源出来了,Swift具有很多的

[C5] Andrew Ng - Structuring Machine Learning Projects

About this Course You will learn how to build a successful machine learning project. If you aspire to be a technical leader in AI, and know how to set direction for your team's work, this course will show you how. Much of this content has never been

ReactiveX序列——RxSwift 浅析

ReactiveX序列——RxSwift Swift是苹果公司新推出的一门现代化的编程语言,并且将其开源出来了,Swift具有很多的优点,这也使得这门语言推出的短时间引起了很大反应的原因,在最近的2016年3月的编程语言排行榜处于第14位,甚至超过了OC(15位).可见Swift的在开发者心中的地位. RxSwift的观察者对象(Observable) 在RxSwift中,可以有多种创建Observable对象的方法,主要有以下几种: asObservable create deferred e

批处理文件工具(java+shell命令实现)

批处理文件工具(java+shell命令实现) 有一堆语料需要处理一下才能使用,本来应该可以直接用shell脚本直接处理的. 但是对shell脚本不熟,只会简单的一些命令. 因此就利用java+shell命令实现. 也许,直接用shell脚本处理是最好的.或许你有什么绝妙的方法也请告诉我哦! 当然,我这个工具有个好处,就是如果通过shell命令实现不了的功能,可以用java实现, 添加相应接口就可以了. 工具里面的功能,Java负责调度,shell负责具体功能. 意思是说,我写的shell命令是

Python爬取全国历史天气数据

1.通过爬取历史首页,来获取城市地址和历史时间,构建链接: ''' 获取全国的城市名称和链接 ''' import requests from lxml import etree import random import pymongo from time_list import get_time client = pymongo.MongoClient('localhost',27017) tianqi_data = client['tianqi_data'] time_url_table =