javascript - 无法识别的 JavaScript 语法

标签 javascript rxjs

我在查看 RxJs documentation 时遇到了特定的 javascript 代码。

import { of } from 'rxjs';
import { map } from 'rxjs/operators';

map(x => x * x)(of(1, 2, 3)).subscribe((v) => console.log(`value: ${v}`));

我理解它的作用,但据我所知,我以前从未遇到过这种语法。这是哪种语法?

编辑:

我对 map(x => x * x)(of(1, 2, 3)) 部分感到困惑。 @Olian04 很好地解释了 map() 是一个高阶函数。 map() 返回一个传递参数 of(1, 2, 3)

的函数

最佳答案

由于您没有具体指定片段的哪一部分让您感到困惑,因此我将快速分解不包括导入的代码:

  • x => x*x 是一个箭头函数。与function(x){return x*x;}
  • 相同
  • map 是一个高阶函数,它将函数作为其参数 map(f)。它还返回一个函数fMap = map(f)
  • fMap 是一个将可观察量作为参数的函数,并且 返回一个可观察量,其中每个值都应用了函数 f fObs = fMap(obs)
  • of 是一个函数,它接受任意数量的参数,并返回一个可观察对象,该可观察对象会将这些参数作为事件发送给订阅者 obs = of(1, 2, 3)
  • fObs.subscribe 是一个高阶函数,它将函数作为其参数并将其注册为事件订阅者
  • `value: ${v}` 是一个字符串文字模板,与 'value: ' + String(v)
  • 相同

关于javascript - 无法识别的 JavaScript 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62156043/

相关文章:

rxjs - 从多个来源获取最后发出的对象

angular - 带数组的 SwitchMap 运算符

angular - 如何使用 Angular2 中的 Observable Map 函数将 Http 服务返回的 Response 对象映射到 TypeScript 对象

rxjs - 如何为 Observable.interval() 添加延迟?

javascript - 使用 jquery 将表单字段插入弹出页面

javascript - 如何使 Canvas 保持焦点

javascript - 如何使用 Papa Parse 在 CasperJS 中解析 CSV?

javascript - 如何创建两个相同的div。彼此相邻且处于同一水平

javascript - 使用 Javascript 验证输入

javascript - 无法在拦截器中取消请求