【问题标题】: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


    【解决方案1】:

    我有C/C++背景,所以下面的链接对理解java脚本箭头函数很有帮助。 javascript.info, arrow function

    上面代码的意思是 subscribe() 函数的参数是一个函数。该函数以英雄为参数,执行箭头符号右侧的表达式。

    【讨论】:

      【解决方案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;
        })
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-03-14
          • 2016-12-19
          • 2017-03-26
          • 2018-05-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多