【问题标题】:What does this mean in the Observable TC-39 proposal?这在 Observable TC-39 提案中意味着什么?
【发布时间】:2017-10-22 01:57:44
【问题描述】:

TC-39 Observable API proposal我看到了:

组合:Observables 可以由高阶组合器组合。

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

那么上面的引用在 observables 的上下文中是什么意思?

【问题讨论】:

  • 如果您向下滚动一点,他们会举一个例子 - Ctrl+F 表示 我们可以使用标准组合符
  • TL;DR - 它指的是像 filtermapflatMap 这样的函数,它们允许您将一种可观察对象转换为另一种。
  • 好的,谢谢。如果你愿意,我会接受作为答案

标签: javascript observable combinators


【解决方案1】:

在 Observables 的上下文中,Combinators 指的是允许您将一种 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 上的同名函数类似。需要注意的重要一点是,与数组函数类似,它们总是返回一个新的 Observable——它们不会改变现有的。这很有用,因为这意味着如果需要,可以将更多组合器链接到 commandKeys 的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 2016-06-28
    • 2014-09-30
    • 2019-08-07
    • 2010-10-21
    • 2016-05-18
    相关资源
    最近更新 更多