这是getHeroes()的代码
getHeroes(): void {
this.heroService.getHeroes()
.subscribe(heroes => this.heroes = heroes);
}
我的理解是getHeroes()函数: getHeroes()不接受任何参数并返回void。它将调用另一个名为getHeroes()的函数heroService。调用subscription(),以便执行heroService.getHeroes()。在subscription()中,this.heroes = heroes表示将接收到的英雄写入this.heroes。第一个heroes关键字是做什么的? (英雄=> ...)
答案 0 :(得分:2)
我有C / C ++背景,因此下面的链接对于理解Java脚本箭头功能非常有帮助。 javascript.info, arrow function
上面代码的含义是subscribe()函数的参数是一个函数。然后该函数将英雄作为参数并执行箭头符号右侧的表达式。
答案 1 :(得分:0)
有一个箭头函数,当响应准备就绪时将被调用,它从服务函数中获取一个参数heroes
并将其分配给变量this.heroes
答案 2 :(得分:0)
可观察物
getHeroes()
函数返回具有subscribe()
成员函数的RxJS observable 。可观察的是数据流。因此,他们可以将数据推送到其所有订户。这就是为什么您必须订阅(取消订阅)可观察对象的原因。订阅函数的第一个参数是数据流(函数),第二个可选参数是错误(函数),第三个参数是在可观察对象完成时运行的回调函数。
您应该在rxjs文档中阅读有关可观察对象的信息,它们确实功能强大。
Lambda(或箭头)功能
subscribe
函数中的短语称为lambda函数。这是一个内联函数,不会覆盖this
语句,这意味着您可以使用此函数访问父类成员。它们有两种不同的类型,第一种是例如JS数组map
函数的用法如下。
const property1Array = array1.map(entry => entry.property1);
这实际上是速记
const property1Array = array1.map((entry) => {
return entry.property1;
})