Task_Array_Util

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

2020-06-01 기준 버전입니다. 최신 버전을 확인하세요.

이 스크립트는 직접 설치하는 용도가 아닙니다. 다른 스크립트에서 메타 지시문 // @require https://update.greatest.deepsurf.us/scripts/404464/811192/Task_Array_Util.js을(를) 사용하여 포함하는 라이브러리입니다.

  1. //slightly modified from
  2. //https://stackoverflow.com/questions/15504921/asynchronous-loop-of-jquery-deferreds-promises?answertab=votes#tab-top
  3.  
  4. /*
  5. TODO Description
  6. */
  7.  
  8. var time = Math.floor(Math.random() * 3000);
  9.  
  10. function doTask(taskNum, next) {
  11. log("doTask Enter");
  12. setTimeout(function () {
  13. log(taskNum);
  14. next();
  15. }, time)
  16. }
  17.  
  18. function createTask(taskNum) {
  19. log("createTask Enter");
  20. return function () {
  21. doTask(taskNum, dequeueTask);
  22. }
  23. }
  24.  
  25. function queueTask(tasks) {
  26. log("queueTask Enter!");
  27. log(tasks[0]);
  28. //tasks is an array of functions
  29. for (var i = 0; i < tasks.length; i++) {
  30. log("queueTask i " + i);
  31. $(document).queue('tasks', createTask(tasks[i]));
  32. }
  33.  
  34. $(document).queue('tasks', function () {
  35. log("All tasks dequeued");
  36. });
  37. }
  38.  
  39. function dequeueTask() {
  40. log("dequeueTask Enter");
  41. $(document).dequeue('tasks');
  42. }