javascript - Angular2订阅了解箭头功能

标签 javascript angular typescript arrow-functions

我试图通过 Angular 2 Observable 订阅方法的例子来理解 typescript 的箭头函数。有人可以解释一下吗:

我有这段有效的代码:

 this.readdataservice.getPost().subscribe(
            posts => { this.posts = posts; }
        );

但是如果我用这个应该是一样的吗?但这不起作用。

this.readdataservice.getPost().subscribe(
            function (posts) {
                this.posts = posts;
            }

        );

最佳答案

  1. 箭头函数是匿名的,不绑定(bind)它自己的 this。因此,this 是当前上下文的 this

  2. 如果我们不显式绑定(bind)它,普通函数会将 this 绑定(bind)到调用者


然后

    this.readdataservice.getPost().subscribe(
        posts => { this.posts = posts; }
    );

可以

    var self = this;
    this.readdataservice.getPost().subscribe(
        function(posts) { self.posts = posts; }
    );

或者

    this.readdataservice.getPost().subscribe(
        function(posts) { this.posts = posts; }.bind(this)
    );

关于javascript - Angular2订阅了解箭头功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40801758/

相关文章:

javascript - 将 jQuery 插件与 Angular 5 (Typescript) 一起使用失败

javascript - 如何让js持续等待fetch请求的结果和处理?

javascript - Sencha Touch 2 网格

Angular 4 forwardRef?

javascript - ngFor 中的下拉列表仅显示第一个列表项

javascript - 西类牙语使用者的日期格式 - 返回 NaN 或无效日期

javascript - Typescript RequireJs 快捷键 + 导航

typescript - 在 Next.js 测试中无法从 aws-jwt-verify 库中找到模块 '#node-web-compat'

javascript - 快报:这个功能是如何实现的呢?

javascript - Mysql 的 Highchart 不工作