You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
varcode=Rx.Observable.from(["ArrowUp","ArrowUp","ArrowDown","ArrowDown","ArrowLeft","ArrowRight","ArrowLeft","ArrowRight","KeyB","KeyA","Enter"// no start key, clearly.]);varkeys=Rx.Observable.fromEvent(document,'keyup').map(e=>e.code);varmatches=keys.bufferCount(11,1).mergeMap(last11=>Rx.Observable.from(last11).sequenceEqual(code));matches.subscribe(matched=>console.log('Successful cheat at Contra? ',matched));
COMBINATION OPERATORS 组合
combineLatest
当任意 observable 发出值时,发出每个 observable 的最新值。
vara=Rx.Observable.of(1,2);varb=Rx.Observable.of('a','b','c');varobservable=a.combineLatest(b,(a,b)=>''+a+b);observable.subscribe(x=>console.log(x));// With output to console:// 2a// 2b// 2c
// 只发出目标是 DIV 元素的点击事件varclicks=Rx.Observable.fromEvent(document,'click');varclicksOnDivs=clicks.filter(ev=>ev.target.tagName==='DIV');clicksOnDivs.subscribe(x=>console.log(x));
RxJS Operators
CREATION OBSERVABLES 创建
form
将数组、promise 或迭代器转换成 observable
interval
基于给定时间间隔发出数字序列。
of
按顺序发出任意数量的值。
timer
给定持续时间后,再按照指定间隔时间依次发出数字。
CONDITIONAL OPERATORS 条件
defaultIfEmpty
如果在完成前没有发出任何通知,那么发出给定的值
every
如果完成时所有的值都能通过断言,那么发出 true,否则发出 false 。
sequenceEqual
使用可选的比较函数,按顺序比较两个 Observables 的所有值,然后返回单个布尔值的 Observable, 以表示两个序列是否相等。
COMBINATION OPERATORS 组合
combineLatest
当任意 observable 发出值时,发出每个 observable 的最新值。
concat
按照顺序,前一个 observable 完成了再订阅下一个 observable 并发出值。
merge
将多个 observables 转换成单个 observable 。
race
使用首先发出值的 observable 。
startWith
发出给定的第一个值
withLatestFrom
结合源 Observable 和另外的 Observables 以创建新的 Observable, 该 Observable 的值由每 个 Observable 最新的值计算得出,当且仅当源发出的时候。
zip
将多个 Observable 组合以创建一个 Observable,该 Observable 的值是由所有输入 Observables 的值按顺序计算而来的。
FILTERING OPERATORS 过滤
debounceTime
只有在特定的一段时间经过后并且没有发出另一个源值,才从源 Observable 中发出一个值。
debounce
只有在另一个 Observable 决定的一段特定时间经过后并且没有发出另一个源值之后,才从源 Observable 中发出一个值。
distinct
返回 Observable,它发出由源 Observable 所发出的所有与之前的项都不相同的项。
distinctUntilChanged
返回 Observable,它发出源 Observable 发出的所有与前一项不相同的项。
elementAt
只发出单个值,这个值位于源 Observable 的发送序列中的指定 index 处。
filter
通过只发送源 Observable 的中满足指定 predicate 函数的项来进行过滤。
find
只发出源 Observable 所发出的值中第一个满足条件的值。
findIndex
first
ignoreElements
last
sample
当提供的 observable 发出时从源 observable 中取样。
skip
跳过N个(由参数提供)发出值。
skipUntil
skipWhile
take
只发出源 Observable 最初发出的的N个值 (N = count)。
takeLast
takeUntil
发出源 Observable 发出的值,直到 notifier Observable 发出值。
takeWhile
throttle
仅当由提供的函数所确定的持续时间已经过去时才发出值。
throttleTime
当指定的持续时间经过后发出最新值。
MATHEMATICAL OPERATORS 数学
count
max
min
reduce
TRANSFORMATION OPERATORS 转换
buffer
bufferCount
bufferTime
收集发出的值,直到经过了提供的时间才将其作为数组发出。
bufferToggle
bufferWhen
concatMap
将值映射成内部 observable,并按顺序订阅和发出。
concatMapTo
map
将给定的 project 函数应用于源 Observable 发出的每个值,并将结果值作为 Observable 发出。
mapTo
mergeMap
映射成 observable 并发出值。
mergeMapTo
pairwise
pluck
将每个源值(对象)映射成它指定的嵌套属性。
repeat
scan
随着时间的推移进行归并。
switchMap
switchMapTo
UTILITY OPERATORS 工具
delay
根据给定时间延迟发出值。
delayWhen
延迟发出值,延迟时间由提供函数决定。
do
透明地执行操作或副作用,比如打印日志。
toPromise
将 observable 转换成 promise 。
ERROR HANDLING OPERATORS 错误处理
catch
处理 observable 序列中的错误。
retry
如果发生错误,以指定次数重试 observable 序列。
retryWhen
MUILTCASTING OPERATORS 多播
share
在多个订阅者间共享源 observable 。
The text was updated successfully, but these errors were encountered: