JavaScript 如何将函数存储在队列中并按顺序执行

JavaScript 如何将函数存储在队列中并按顺序执行

有时候,开发人员可能需要将函数存储在队列中,并按照它们在队列中的顺序执行。在JavaScript中,我们可以使用数组来创建一个队列。我们可以使用数组的push()方法将函数入队列,使用shift()方法将函数出队列。

下面,我们将看到将JavaScript函数存储在队列中并按队列顺序执行的示例。

语法

用户可以按照下面的语法将JavaScript函数存储在队列中并按顺序执行。

while (queue.length > 0) { 
   queue[0](); 
   queue.shift(); 
}

我们在上述语法中使用while循环来遍历队列。我们执行队列中的第一个函数,然后将该函数从队列中删除。

示例

在下面的示例中,我们创建了一个名为queue的变量,并将其初始化为空数组,使其成为一个队列。

之后,我们创建了三个不同的函数,并使用数组的push()方法将所有函数添加到队列中。每当用户按下按钮时,就调用executeFunctions()函数。在executeFunctions()函数中,我们使用while循环从队列中弹出函数。在每次循环迭代中,我们执行数组中的第一个函数,并使用array.shift()方法从数组中删除第一个元素。

<html>
<body>
   <h3>Using the array to add functions in Queue and execute functions in particular order</h3>
   <div id = "content"> </div></br>
   <button onclick = "executeFunctions()"> Execute function in queue order </button>
   <script>
      let content = document.getElementById("content");
      // execute the functions in the order they are added to the queue
      var queue = [];
      function executeFunctions() {
         while (queue.length > 0) {
            queue[0]();
            queue.shift();
         }
      }
      function function1() {
         content.innerHTML += "Function 1 executed <br>";
      }
      function function2() {
         content.innerHTML += "Function 2 executed <br>";
      }
      function function3() {
         content.innerHTML += "Function 3 executed <br>";
      }
      queue.push(function1);
      queue.push(function2);
      queue.push(function3);
   </script>
</body>
</html>

示例

在下面的示例中,我们创建了一个数组,使其像第一个示例一样作为队列工作。然后,我们将sum()、sub()、mul()和div()函数添加到队列中。

在executeFunctions()函数中,我们使用for循环按照队列的顺序调用所有函数。另外,我们使用call()方法从队列中调用函数。

<html>
<body>
   <h3>Using the array to add functions in Queue and execute functions in particular order</h3>
   <div id = "content"> </div> </br>
   <button onclick = "executeFunctions()"> Execute function in queue order </button>
   <script>
      let content = document.getElementById("content");
      // execute the functions in the order they are added to the queue
      var queue = [];
      function executeFunctions() {
         for (let i = 0; i < queue.length; i++) {
            queue[i].call();
         }
      }
      let a = 10;
      let b = 5;
      function sum() {
      content.innerHTML += "Sum of " + a + " and " + b + " is " + (a + b);
      }
      function sub() {
         content.innerHTML += "<br>Subtraction of " + a + " and " + b + " is " + (a - b);
      }
      function mul() {
         content.innerHTML += "<br>Multiplication of " + a + " and " + b + " is " + (a * b);
      }
      function div() {
         content.innerHTML += "<br>Division of " + a + " and " + b + " is " + (a / b);
      }
      queue.push(sum);
      queue.push(sub);
      queue.push(mul);
      queue.push(div);
   </script>
</body>
</html>

用户学会了将函数存储在队列中,并按照队列顺序执行它们。在JavaScript中,没有内置的队列数据结构,但我们可以使用数组作为队列。

在第一个示例中,我们使用了shift()方法从队列中出队。在第二个示例中,我们使用for循环按顺序执行函数。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程