Task_Array_Util

//https://stackoverflow.com/questions/15504921/asynchronous-loop-of-jquery-deferreds-promises?answertab=votes#tab-top

Version vom 01.06.2020. Aktuellste Version

Dieses Skript sollte nicht direkt installiert werden. Es handelt sich hier um eine Bibliothek für andere Skripte, welche über folgenden Befehl in den Metadaten eines Skriptes eingebunden wird // @require https://update.greatest.deepsurf.us/scripts/404464/811281/Task_Array_Util.js

//slightly modified from
//https://stackoverflow.com/questions/15504921/asynchronous-loop-of-jquery-deferreds-promises?answertab=votes#tab-top

/*
TODO Description
 */

var time = Math.floor(Math.random() * 3000);

function doTask(taskNum, next, args) {
    log("doTask Enter");
    setTimeout(function () {
		log("TEST");
		taskNum(args);
        next();
    }, time)
}

function createTask(taskNum, args){
	log("createTask Enter");
    return function(next){
        doTask(taskNum, next, args);
    }
}

function queueTask(tasks, args) {
    log("queueTask Enter!");
	log("tasks | " + tasks);
	log("args | " + args);
    //tasks is an array of functions
    for (var i = 0; i < tasks.length; i++) {
		log("queueTask i " + i);
        $(document).queue('tasks', createTask(tasks[i], args[i]));
    }

    $(document).queue('tasks', function () {
        log("All tasks dequeued");
    });
	
	dequeueTask();
}

function dequeueTask() {
    log("dequeueTask Enter");
    $(document).dequeue('tasks');
}