【发布时间】:2015-01-16 16:59:25
【问题描述】:
我正在使用 javascript 和 AJAX。我打电话给服务器进行登录。它发送一个登录是真的响应。然后我需要通过再次调用服务器来收集有关用户的所有信息。如果我立即拨打电话,服务器将返回用户未登录的响应。我可以使用 setTimeout(myFunction(), 1000) 或 setInterval(myFunction(), 1000);拨打第二个电话。我想知道,是否有一种干净的方法可以在不运行其余代码的情况下继续等待正确的响应?我想我最大的问题是,如果不将所有内容都放在回调响应中,我怎么能做到这一点?我希望代码有点模块化。
【问题讨论】:
-
虽然我标记为重复的问题不是完全相同的问题,但最佳答案中列出的技术 正是您需要使用的。
-
罗里你在做什么?问题与获得 Ajax 响应无关。 Michael 得到了响应(第 2 和第 3 句),但他想延迟其他代码的运行,直到第二个 'ok' 响应进来。(通过覆盖阻止 ui、设置嵌套的 Ajax 调用等)
-
显示您拥有的代码,然后描述它的问题所在。你的问题根本不清楚。 Javascript 在回调中处理异步响应。这是处理异步响应的唯一方法,因此您正在浪费时间来避免回调。 Promise 是一种更优雅的回调处理方式,但它们仍然是回调。
标签: javascript jquery ajax flow flow-control