我在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?
谢谢你的解释。它真的帮助我理解。 –