我在JavaScript中有一個對象。對象中的方法是從對象外部調用的。我希望這種方法在200ms後調用自己(遞歸類型,但不完全),直到滿足條件。我在函數中沒有定義
this.setSearchResult = function(data){
if(initiated){
doSetSearchResult(data);
}else{
console.log("Map is not initiated yet. Waiting 200 ms");
setTimeout(function(){setSearchResult(data);}, 200); // <- Error
}
}
調用setSearchResult做是這樣的:
mapView = new MapView(imageData);
mapView.setSearchResult(data);
我得到的錯誤是ReferenceError: setSearchResult is not defined.
一個克服錯誤的方法是通過改變setTimeout調用此:
setTimeout(function(){mapView.setSearchResult(data);}, 200);
但我覺得很醜陋(儘管它可能會工作在 我的應用程序)。
有沒有正確的方法呢?我是否必須在setSearchResult中使用setTimeout?
謝謝你的解釋。它真的幫助我理解。 –