我希望我沒有犯任何菜鳥錯誤,但我似乎無法確定這一點。 因此,這裏的代碼:無法將訂閱的結果分配給參考陣列
這是一個分量
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,
);
的問題是,我的組件級別聲明的變量「即使函數的「refArray」參數正常獲取,「apiSpots」也不會從訂閱中獲得結果。 我懷疑訂閱內部的「refArray」與我傳遞給函數的內容不完全相同,但我不知道如何解決它。
任何想法?
編輯:錯字
SOLUTION:
所以,THX馬丁,這裏的修改樣本: 搜索功能
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;
},
);
我現在明白了,謝謝。 –