【发布时间】:2017-03-27 11:38:34
【问题描述】:
我希望我没有犯任何新手错误,但我似乎无法弄清楚这一点。 代码如下:
这是组件内部的函数
search(term: string,service,refArray: any[]){
service.search(term)
.subscribe(
result => {
refArray = result;
console.log(refArray); // display result as it should
console.log(this.resultArray); // display "undefined"
},
err => {
refArray = [];
console.log(err);
},
() => {console.log('completed')}
);
}
然后,我这样使用它:
this.search(
searchTerm,
this.Service,
this.resultArray,
);
问题是我的组件级别声明的变量“apiSpots”从未从订阅中获得结果,即使函数中的“refArray”参数正常获得它。 我怀疑订阅中的“refArray”与我传递给函数的不完全相同,但我不知道如何解决。
有什么想法吗?
编辑:错字
解决方案:
所以,感谢马丁,这是修改后的示例: 搜索功能
search(term: string,service,callback: (result) => void){
service.search(term)
.subscribe(
result => {
callback(result);
},
err => {
callback([]);
console.log(err);
},
() => {console.log('completed')}
);
}
和用法
let context = this;
this.search(
searchTerm,
this.Service,
function(result){
context.resultArray = result;
},
);
【问题讨论】:
标签: javascript angular typescript rxjs subscriber