javascript - 在另一个函数之前执行一个函数(包含 setInterval)的简单方法

标签 javascript async-await

我有三个函数,我想一个接一个地执行。我的三个函数是 A_rray()Counter()Main_Function(N,A),我有 Main_Function(N ,A) 基于 A_rray(),一旦该部分被执行,那么我想等待 Counter() 如下-

        if (A_rray().length!=0){
                           Main_Function(500,A_rray());
                              }
else{console.log('Number = ',A_rray().length)}
Counter();

函数是-

function A_rray(){ D=[1,2];return D;}  
function  Counter(){console.log('Done!');}
function  Main_Function(N,A){
    var counter = 0;
    var interval = setInterval(function() {
        counter++;
        if (counter === A.length) {
            clearInterval(interval);
        }
        console.log(counter, 'iteration')
    }, N)                  }

但问题是,Counter()函数先执行,然后是条件和其他部分,这可能是因为setInterval

我尝试了一些写在 Stack Overflow 上的方法,但由于我是初学者,所以这些方法都不起作用。

有没有一种简单的方法来执行第一个基于Array()的函数Main_Function(N,A),然后执行Counter() 高效?

最佳答案

一种更简单的方法是编辑您的 MAIN_FUNCTION,以便您从那里调用 Counter

function MAIN_FUNCTION(N,A) {
  var counter = 0;
    var interval = setInterval(function() {
        counter++;
        console.log(counter, 'iteration');
        if (counter === A.length) {
            clearInterval(interval);
            Counter();
        }
    }, N);
}

然后从执行位中去掉另一个Counter调用

这将确保 Counter 仅在 interval 的最后一次迭代之后运行

一些注意事项:

  • 看到 Counter 只记录日志,您可以简单地将调用替换为日志调用
  • 调用函数 Array 会覆盖 javascript 的默认函数,该函数是 Array 类的构造函数

关于javascript - 在另一个函数之前执行一个函数(包含 setInterval)的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58356716/

相关文章:

javascript - 创建异步函数以稍后在快速 route 调用结果

javascript - Javascript 自执行匿名函数的唯一实例

javascript - 我尝试使用 emailjs,但出现此错误 "user id is required"。如何修复它?

javascript - 使用javascript,根据值删除除最后一个对象之外的所有对象

javascript - 在循环 + Nodejs 内使用带有 async/await 的循环

javascript - 让 Promise 等待 Chrome.runtime.sendMessage

javascript - 添加元素在html中添加两个位置

javascript - Ajax 在 PHP 页面上不工作

ASP.NET MVC4 异步 Controller - 为什么要使用?

javascript - 真的与 JS 异步混淆(调用 2 API)