【发布时间】:2017-03-08 01:57:30
【问题描述】:
我知道,类似的问题已经问过很多次了,但我的情况相当具体,据我所知,以前从未有人提到过。至少从我能找到的情况来看。
我正在做的是使用 UID 构建对象。构建对象的所有内容都需要此 UID,并且需要先验证它是唯一的,然后才能对其进行任何操作。
我在 javascript 中随机生成 UID,并对照 SQL 数据库中的所有其他条目检查它。我正在使用 PHP 和 Ajax 发布到数据库。
我遇到的核心问题是 Javascript 不等待 Ajax 响应,而是继续滚动。 Ajax 必须使用成功处理程序。这对我来说是绝对不可能使用的,因为在我确定 UID 已经过验证之前,我不能做任何事情。
是否有任何解决方法或解决方案? Promise 不起作用,因为正如我之前所说,UID 在构建对象时是不可或缺的,因此使用占位符是行不通的。
提前致谢!
【问题讨论】:
-
如果您使用 jQuery,请查看 $.ajax 的
async设置(将其设置为false) - 另请参阅 api.jquery.com/jQuery.ajax -
so.... 为什么不能等到第一个 ajax 调用成功返回后再创建对象?你可以从那个成功回调中踢出对象创建方法,对吧?
-
看起来您正在客户端生成 UID,然后从服务器/数据库进行验证。不能在服务器上生成一个经过验证的UID,第一次加载的时候传给页面吗?
-
@Kats 等等,为什么 promises 不起作用?你可以说 verify(UUID).then(dowhatever) ,不是吗?
-
从哪里生成 UID 并不重要,事实是我必须等待它。正在创建的对象是客户端的,虽然理论上我可以在回调函数中运行对象创建代码,但这首先需要对我几乎所有的对象创建代码进行重大重写,并且考虑到我在问问题在这个网站上,我的时间有点紧张。
标签: javascript php sql ajax database