Javascript回调函数的用法

Usage of Javascript callback function

本文关键字:用法 函数 回调 Javascript      更新时间:2023-09-26

我认为这是非常基本的,所以人们可能会在这个文档上减去投票,但即使如此,这也让我对JavaScript中的回调函数感到困惑。

function doSomething(callback){ 
    setTimeout(hello,5000);
    callback();
}

function hi(){
    console.log("hi");
}
function hello(){
    console.log("hello");
}
doSomething(hi);
/* result */
// hi
// (after 5 seconds) hello

我想使用回调函数作为句柄函数的执行顺序,所以我决定使用回调模式。在上面的代码中,我认为5秒钟后,回调函数应该被执行,但为什么回调函数会在函数之前忽略并首先运行呢?你能告诉我一些提示吗。

谢谢。

在代码中,callback()是在执行行setTimeout()之后执行的,但setTimeout的回调将在5000ms之后触发,这是预期的行为。因此,如果你想让callback()hello()之后执行:

function doSomething(callback){ 
    setTimeout(function(){
        hello();
        callback();
    },5000);
}