【问题标题】:Angular-CLI Tour of Heroes example code (getHeroes) meaningAngular-CLI 英雄之旅示例代码(getHeroes)含义
【发布时间】:2018-11-01 03:59:46
【问题描述】:
这是 getHeroes() 的代码
getHeroes(): void {
this.heroService.getHeroes()
.subscribe(heroes => this.heroes = heroes);
}
我的理解是 getHeroes() 函数:
getHeroes() 不接受任何参数并返回 void。它将调用另一个函数是 heroService,同名 getHeroes()。 subscribe() 被调用所以 heroService.getHeroes() 被执行。在 subscribe() 内部,this.heroes = heros 表示将接收到的英雄写入 this.heroes。第一个英雄关键字是做什么的? (英雄 => ...)
【问题讨论】:
标签:
javascript
angular-cli
【解决方案2】:
它是一个箭头函数,将在响应准备好时调用,它从服务函数中获取一个参数heroes,并将其分配给变量this.heroes
【解决方案3】:
可观察的
getHeroes() 函数返回一个 RxJS observable,它有一个 subscribe() 成员函数。 Observables 是一个数据流。所以他们可以将数据推送给它的所有订阅者。这就是为什么你必须订阅(和取消订阅)observables。 subscribe 函数的第一个参数是数据流(函数),第二个可选参数是错误(函数),第三个参数是当 observable 完成时运行的回调函数。
您应该阅读 rxjs 文档中的 observables,它们真的很强大。
Lambda(或箭头)函数
subscribe 函数中的短语称为 lambda 函数。它是一个内联函数,不会覆盖this 语句,这意味着您可以访问此函数中的父类成员。它们有两种不同的类型,第一种是例如。 JS数组map函数的使用方法如下。
const property1Array = array1.map(entry => entry.property1);
这其实是一个简写
const property1Array = array1.map((entry) => {
return entry.property1;
})