Angular-CLI英雄之旅示例代码(getHeroes)的含义

时间:2018-11-01 03:59:46

标签: javascript angular-cli

这是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关键字是做什么的? (英雄=> ...)

3 个答案:

答案 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;
})