我知道很多其他时间都有人问过类似的问题,但我的案例比较具体,据我所知,以前从未涉及过。至少从我能找到的。在继续使用Javascript代码之前等待AJAX返回成功?
我在做什么是使用UID构建对象。该对象所构建的所有东西都需要这个UID,并且需要在它完成任何事情之前将其验证为唯一的。
我在JavaScript中随机生成UID,我正在对SQL数据库中的所有其他条目进行检查。我使用PHP和Ajax发布到数据库。
我遇到的核心问题是Javascript不会等待Ajax响应,而是继续滚动。 Ajax必须使用成功处理程序。这对我来说是绝对不可能的,因为我不能做任何事情,直到我确定UID已被验证。
是否有任何解决方法或解决方案?承诺是行不通的,因为正如我之前所说的那样,UID在构建对象本身时是不可或缺的,所以使用占位符将不起作用。
在此先感谢!
如果您使用jQuery,请查看$ .ajax的'async'设置(将其设置为'false') - 另请参阅http://api.jquery.com/jQuery.ajax/ – Andreas
so .. ..为什么你不能等待创建一个对象,直到你的第一个Ajax调用返回成功?您可以从该成功回调中踢对象创建方法,对吧? –
看起来您正在客户端生成UID,然后从服务器/数据库进行验证。你不能在服务器上生成已验证的UID并在第一次加载时传递给页面吗? –