我在 javascript 中有一个对象。从对象外部调用对象中的方法。我希望此方法在 200 毫秒后调用自身(一种递归但不完全),直到满足条件。
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?