我有一个数组。通常,该数组有大约5个对象。而且我希望系统将循环数组,数组中的每个对象都会生成一个窗口(我使用的是kendo窗口)。在ajax发送值并成功返回值后,用户将在提示窗口中进行一些操作。窗口将关闭,然后根据数组中的对象提示下一个窗口。那么如何让.each()等到窗口关闭再打开另一个窗口?
我知道JQuery的承诺和.map(),但我不知道如何实现它?
答案 0 :(得分:0)
看一下下面的代码片段。我用setTimeout
模拟了异步行为(窗口序列)。创建kendoUI窗口代码就在我使用setTimeout
没有使用jQuery承诺。一切都是普通的javascript。
var array = [3, 6, 2, 5, 10],
iTaskCounter = -1;
function doSomething(item, fnNextJob) {
// Showing dialog and doing something
// Now mocked with setTimeout
console.log("Task: ", item);
setTimeout(function() {
console.log("Calling next task");
fnNextJob();
}, item * 1000);
}
function executeTask() {
iTaskCounter++;
if(iTaskCounter < array.length) {
doSomething(array[iTaskCounter], executeTask);
} else {
console.log("Task completed");
}
}
console.log("Start task");
executeTask();