【发布时间】:2016-07-22 04:22:16
【问题描述】:
我正在尝试使用 jQuery 编写一些 JavaScript 代码,以顺序执行一些异步事件(在循环中);仅在前一个异步事件完成后进行迭代。
基本思路是:
for (var i = 0; i < someLength; i++) {
// 1. dynamically add a <form> and <input>s to the DOM
// 2. submit the form to a target <iframe>
// 3. wait for an async callback indicating the form has been submitted
}
我有 #1 和 #2 的工作代码,我可以将 load 事件侦听器附加到 <iframe> 以了解表单提交何时完成:
$('.iframe').on('load', function() { ...
});
for (var i = 0; i < someLength; i++) {
// 1. dynamically add a <form> and <input>s in the DOM
// 2. submit the form to a target <iframe>
// 3. wait for an async callback indicating the form has been submitted
}
问题是我不知道如何将ready 回调绑定到循环逻辑。我试图研究延迟/承诺,但并没有真正了解如何在这里正确应用这些概念。
如果答案是使用 Promise,那么我也很想看看如何合并一些代码以在循环进行时显示“加载”微调器,然后在我们退出循环后移除微调器。
谢谢!
【问题讨论】:
标签: javascript jquery asynchronous promise