回调函数在原始函数之前执行

时间:2018-04-28 11:35:59

标签: javascript callback

我正在编写一个用于演示回调函数的代码段。我有一个函数alpha,我在其中传递函数beta作为回调。我假设必须执行第一个alpha,并且在完成所有工作后,必须执行beta。为什么我看到测试版首先被执行,根据回调,它们在所有工作完成后执行 - 我学到了。



function alpha() {
  alert('hi');
}

function beta() {
  alert('hello');
}

alpha(beta());




期待:

嗨那么你好

结果:

你好然后嗨

1 个答案:

答案 0 :(得分:3)

这不符合您的想法:

alpha(beta());

这会立即调用beta,然后将beta()结果传递给alpha的调用。由于beta不会返回任何内容,因此结果为undefined

你想要的是将函数本身作为回调发送,而不是执行函数的结果:

alpha(beta);
在你的alpha

另外,您需要实际调用回调:

function alpha(callback){
    alert('hi');
    callback();
}