如何让脚本在继续之前等待 Ajax get 请求的状态?
基本上我正在做的是检查对象是否存在,如果没有找到,脚本将尝试使用 getScript 加载源文件。我只想检查一次,然后将 true 或 false 返回给调用 fetch() 的函数,
fetch:function(obj){
...
isReady = false;
$.getScript(obj.srcFile,function(){
isReady=true;
warn("was able to load object "+key);
});
return isReady;
}
但 return 在脚本加载之前启动=/
稍后加载脚本,但函数返回 false。
我想这就是异步的美妙之处...
处理这个问题的最佳方法是什么...也许我可以在其他时候再次检查对象是否存在?
或者也许有更好的方法来做到这一点,我不必潜在地锁定浏览器?
Basically what I'm doing is checking for the existence of an object, if it's not found, the script will try to load the source file using getScript. I only want to check this once though then return true or false to the function that calls fetch()
fetch:function(obj){
...
isReady = false;
$.getScript(obj.srcFile,function(){
isReady=true;
warn("was able to load object "+key);
});
return isReady;
}
but return kicks in before the script loads =/
later the script is loaded but the function returned false.
This is the beauty of asynchronous I suppose...
What's the best way to handle this... Maybe I could check again at some other point if the object exists?
Or maybe there's a better way to do this where I dont have to potentially lock the browser?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
从代码的组织来看,我猜测您正在使用一个对象来包含您的方法。如果是这样,那么您可以使用如下自定义事件:
From the organizing of your code I am guessing you are using an object to contain your methods. If so then you could use custom events like this:
请参阅 jQuery.ajax():使
async
为 false。See jQuery.ajax(): Make
async
false.您需要在回调函数中返回值,否则它将启动请求并立即返回。
You need to return the value inside the callback function, otherwise it will start the request then return straight away.