在TC-39 Observable API proposal我看到:
成分:可观测量可由高阶组合子组成。
组合器是一种可用于将两个(或更多个)逻辑块组合成单个更有用的构造的函数。
那么上述引用在观察者的背景下意味着什么呢?
答案 0 :(得分:2)
在Observables的上下文中,组合器指的是允许您将一种Observable转换为另一种Observable的函数(通常附加到Observable.prototype
,在我已经看到的实现中)。在提案中有一个很好的例子:
// Return an observable of special key down commands
function commandKeys(element) {
let keyCommands = { "38": "up", "40": "down" };
return listen(element, "keydown")
.filter(event => event.keyCode in keyCommands)
.map(event => keyCommands[event.keyCode])
}
在此示例中,filter
和map
是组合器 - 它们的工作方式与Array.prototype
上相同名称的功能类似。需要注意的重要一点是,与数组函数类似,它们总是返回一个新的Observable - 它们不会改变现有的Observable 。这很有用,因为这意味着如果需要,可以将其他组合器链接到commandKeys
的结果。