Note that there are some explanatory texts on larger screens.

plurals
  1. POServe jquery-ajax one by one
    primarykey
    data
    text
    <p>I have some tasks that I need them to be executed in order one by one:</p> <pre><code>function doTasks(tasks, urlDoTask) { // Create a deferred for each task by calling doTask(). var deferreds = $(tasks).map(function (i, task) { return doTask(task, urlDoTask); }).toArray(); // return a composite deferred which will wait for each of the doTask requests. return $.when.apply($, deferreds); } function doTask(task, urlDoTask) { return ajax({ url: getRootDir() + urlDoTask, data: { param: task.SomeParam }, type: 'POST', dataType: 'json' }).then(function (data) { return ok(createObject("status", "ok", "op", "doTask", "task", task, "data", "passed")); }, function (data) { return ok(createObject("status", "fail", "op", "doTask", "task", task, "data", "failed")); }); } function ok() { return newPromise("resolve", arguments); } function newPromise(type, args) { return $.Deferred(function (dfd) { dfd[type].apply(dfd, args); }).promise(); } function createObject() { var ob = {}; // copy all the arguments name/value pairs into the object for (var i = 0; i &lt; arguments.length; i += 2) { var n = arguments[i]; var v = arguments[i + 1]; ob[n] = v; } return ob; } </code></pre> <p>How can I modify this code to make each doTask to be executed in order one by one? I have thought in using jquery queue but how to apply here? Maybe doing something like:</p> <pre><code> var deferreds = $(tasks).map(function (i, task) { $({}).queue(doTask(task, urlDoTask)); }).toArray(); </code></pre> <p>and once each task has completed do next()?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload