我如何实现JQuery promise和.map()?

时间:2017-06-07 17:41:43

标签: javascript jquery asp.net-mvc web

我有一个数组。通常,该数组有大约5个对象。而且我希望系统将循环数组,数组中的每个对象都会生成一个窗口(我使用的是kendo窗口)。在ajax发送值并成功返回值后,用户将在提示窗口中进行一些操作。窗口将关闭,然后根据数组中的对象提示下一个窗口。那么如何让.each()等到窗口关闭再打开另一个窗口?

我知道JQuery的承诺和.map(),但我不知道如何实现它?

1 个答案:

答案 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();