【发布时间】:2016-08-19 15:16:21
【问题描述】:
我正在开发一个内部页面,该页面允许用户上传包含资源和日期的 CSV,并让该页面将这些资源的所有计划信息添加到我们的管理软件中。有一个相当不错的 API 可以做到这一点,而且我有一个工作模型,但它似乎......笨拙。
对于每个资源,我必须启动一个新会话,然后创建一个新的预留,然后添加资源,然后确认预留没有被阻止,然后提交预留。大多数调用都会返回我在流程中下一步需要的变量,因此每个调用都依赖于之前的 ajax 调用。
目前我正在通过类似这样的嵌套 ajax 调用来执行此操作:
$.ajax('startnewsession').then($.ajax('createreservation').then('etcetc'))
虽然这行得通,但我觉得必须有一种更简单或更“正确”的方式来做到这一点,无论是为了更简洁的代码还是为了适应能力。
【问题讨论】:
-
我通常将我的数据分成块数组。然后,发送第一个块(索引为 0),并在
$.ajax的complete事件上移动到下一个块(索引)。在您的场景中,您可能想看看$.when -
如果您必须依赖上一个 ajax 调用的输出来进行下一个 ajax 调用,那么我认为 $.when 可能无济于事。如果你总是有这一系列的ajax调用,那么我们可以将所有逻辑包装在单个服务中以避免往返吗?
标签: javascript jquery ajax rest