use*_*865 4 javascript this subscribe typescript angular
使用Observable.subscribe()AngularIO 的功能有很多例子.无论如何,我只能在里面看到匿名函数:
bar().subscribe(data => this.data = data, ...);
Run Code Online (Sandbox Code Playgroud)
如果我尝试像这里一样提交同一个类的函数:
updateData(myData : DataType[]) {
this.data = data;
}
...
bar().subscribe(this.updateData, ...);
Run Code Online (Sandbox Code Playgroud)
然后第this2行中的对象不再引用当前对象.这可能是我不理解的一些JavaScript逻辑.我知道你可以将一个对象绑定到一个函数,这是我要做的吗?这是最佳做法吗?一个人通常如何解决这个问题(我想避免在其中有一个大的匿名函数subscribe().
bar().subscribe((myData) => this.updateData(myData), ...);
Run Code Online (Sandbox Code Playgroud)
或使用Function.bind哪个也将绑定正确的上下文:
bar().subscribe(this.updateData.bind(this), ...);
Run Code Online (Sandbox Code Playgroud)
但请注意,Function.bind返回any会使您在TypeScript中丢失类型检查.请参阅https://github.com/Microsoft/TypeScript/issues/212
| 归档时间: |
|
| 查看次数: |
2425 次 |
| 最近记录: |