javascript - 如何在完成一个功能后调用不同的功能?

标签 javascript node.js callback

我写了很长的代码,试图通过这个简单的代码以简单的形式复制这种情况。

我想做的是在function A() 完成后,调用function B()。 我正在尝试使用 callback 函数,但在这种情况下,B 提前触发。 请建议我如何编写此 callback 或任何其他方法?

function A(callback){

    a()
    function a() {
        setTimeout(aa,1000)
        function aa(){
            console.log("in aa")
        }           
    }

    b()
    function b() {
        setTimeout(bb,100)
        function bb(){
            console.log("in bb")
        }       
    }
    c()
    function c(){
        setTimeout(cc,50)
        function cc(){
            console.log("in cc")
        }       
    }
    callback();

}

function B() {
    console.log("in B");
}

A(B)

output
in B
in cc
in bb
in aa

最佳答案

如果您希望回调在超时结束后运行,则必须在超时结束时调用它。

这意味着它需要位于您传递给 setTimeout 的函数的末尾。

使用您当前的代码,您将设置超时倒计时,然后立即调用回调。

function one(callback) {
  console.log(1);

  function two() {
    console.log(2);
    callback();
  }
  setTimeout(two, 250);
}

function three() {
  console.log(3);
}

one(three);

关于javascript - 如何在完成一个功能后调用不同的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51989151/

相关文章:

javascript - DOM 方法和浏览器兼容性站点

json 解析后的 Javascript 回调

javascript - 使用 express 在模块化的 node.js 应用程序中创建同步调用和传递值

javascript - 找不到模块 : Can't resolve 'child_process' NextJS + Nightmare

javascript - CKEditor 4(通过类名替换)获取文本区域值

java - 如何在 jsp 中使用 jquery ajax?

javascript - 使用nodemailer发送电子邮件

node.js - Node js 子进程窗口

node.js - Node js selenium-webdriver 将页面另存为

java - 如何从 AsyncTask 中的回调函数访问父类 View ?