gpt4 book ai didi

javascript - 如何将它绑定(bind)到 AngularIO 的 Observable::subscribe 函数?

转载 作者:太空狗 更新时间:2023-10-29 17:46:24 25 4
gpt4 key购买 nike

有很多使用 AngularIO 中的 Observable.subscribe() 函数的例子。无论如何,我只能看到内部的匿名函数,如下所示:

bar().subscribe(data => this.data = data, ...);

如果我尝试像这里一样提交同一个类的函数:

updateData(myData : DataType[]) {
this.data = data;
}
...
bar().subscribe(this.updateData, ...);

然后第 2 行中的 this 对象不再引用当前对象。这可能是一些我不理解的 JavaScript 逻辑。我知道你可以将一个对象绑定(bind)到一个函数,这是我必须做的吗?这是最佳做法吗?人们通常如何解决这个问题(我想避免在 subscribe() 中有一个大的匿名函数。

最佳答案

您可以将其包装在 arrow function 中这将捕获正确的 this:

bar().subscribe((myData) => this.updateData(myData), ...);

或者使用Function.bind这也将绑定(bind)正确的上下文:

bar().subscribe(this.updateData.bind(this), ...);

但请注意 Function.bind 返回 any ,这将使您失去 TypeScript 中的类型检查。参见 https://github.com/Microsoft/TypeScript/issues/212

关于javascript - 如何将它绑定(bind)到 AngularIO 的 Observable::subscribe 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44584849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com