我在查看 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/