这在 Observable TC-39 提案中意味着什么?

What does this mean in the Observable TC-39 proposal?

TC-39 Observable API proposal 我看到:

Compositional: Observables can be composed with higher-order combinators.

组合子是一种函数,可用于将两个(或更多?)逻辑片段组合成单个更有用的结构。

那么上面的引述在 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])
}

在此示例中,filtermap 是组合子 - 它们的工作方式与 Array.prototype 上的同名函数类似。需要注意的重要一点是,与数组函数类似,它们 总是 return 一个新的 Observable - 它们不会改变现有的。这很有用,因为这意味着如果需要,可以将更多的组合器链接到 commandKeys 的结果。