Angular 这个箭头函数的正确解释是什么?

Angular 这个箭头函数的正确解释是什么?,angular,typescript,arrow-functions,angular-observable,Angular,Typescript,Arrow Functions,Angular Observable,我遵循官方的角度教程: 如您所见,有一个组件类订阅服务: import { Component, OnInit } from '@angular/core'; import { Hero } from '../hero'; import { HeroService } from '../hero.service'; @Component({ selector: 'app-heroes', templateUrl: './heroes.component.html', styleU

我遵循官方的角度教程:

如您所见,有一个组件类订阅服务:

import { Component, OnInit } from '@angular/core';

import { Hero } from '../hero';
import { HeroService } from '../hero.service';

@Component({
  selector: 'app-heroes',
  templateUrl: './heroes.component.html',
  styleUrls: ['./heroes.component.css']
})
export class HeroesComponent implements OnInit {

  selectedHero: Hero;

  heroes: Hero[];

  constructor(private heroService: HeroService) { }

  ngOnInit() {
    this.getHeroes();
  }

  onSelect(hero: Hero): void {
    this.selectedHero = hero;
  }

  getHeroes(): void {
    this.heroService.getHeroes()
        .subscribe(heroes => this.heroes = heroes);
  }
}
我对该组件的
getHeroes()
方法有一些疑问:

 getHeroes(): void {
    this.heroService.getHeroes()
        .subscribe(heroes => this.heroes = heroes);
  }
我知道我的服务返回一个我必须订阅的
可观察的
,因为它是异步的

我唯一不能完全理解的是内部表达式(我认为它被称为lambda),这是:
heroes=>this.heroes=heroes


这个表达式的确切含义是什么?

您是对的,它确实是一个lambda,但是在js中它们通常被称为箭头函数。它们的功能相同

λ等于:

(function (heroes) { return _this.heroes = heroes; });
因此,它需要一个参数,然后将其存储在本地属性中

您的代码片段中的可观察内容也可以写成:

this.heroService.getHeroes()
   .subscribe((heroes: Hero[]) => {
      this.heroes = heroes;
   });

这更清楚地说明了它返回的内容。

您是正确的,它确实是一个lambda,但是在js中它们通常被称为箭头函数。它们的功能相同

λ等于:

(function (heroes) { return _this.heroes = heroes; });
因此,它需要一个参数,然后将其存储在本地属性中

您的代码片段中的可观察内容也可以写成:

this.heroService.getHeroes()
   .subscribe((heroes: Hero[]) => {
      this.heroes = heroes;
   });

这是一个箭头函数,这是回调函数。这是一个箭头函数,这是回调函数。好吧,也许我有一些知识差距。参考你的代码:谁是这个函数的参数?它是准备就绪时被观察者“返回”的数组吗?@AndreaNobili“它是准备就绪时被观察者“返回”的数组吗?”-这是100%正确的。请看我的更新,这可能是一个更清楚的例子。所以我的解释是:服务返回一个可观察的。当它完成时,它会发出Hero[]数组,该数组是函数(heros)的heros参数。这个解释正确吗?@AndreaNobili我不确定这是否有帮助,但我之前在一篇关于可观测的帖子中举了这个例子。好吧,也许我有一些知识差距。参考你的代码:谁是这个函数的参数?它是准备就绪时被观察者“返回”的数组吗?@AndreaNobili“它是准备就绪时被观察者“返回”的数组吗?”-这是100%正确的。请看我的更新,这可能是一个更清楚的例子。所以我的解释是:服务返回一个可观察的。当它完成时,它会发出Hero[]数组,该数组是函数(heros)的heros参数。这个解释正确吗?@AndreaNobili我不确定这是否有帮助,但我之前在一篇关于可观测的帖子中举了这个例子。