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

标签 javascript callback

我正在编写一个片段来演示回调函数。我有一个函数 alpha,其中我传递一个函数 beta 作为回调。我的假设是,必须执行第一个 alpha,所有工作完成后,必须执行 beta。为什么我看到 beta 首先执行,根据回调,它们在所有工作完成后执行 - 这是我了解到的。

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

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

alpha(beta());

期待:

你好,你好

结果:

你好,你好

最佳答案

这并不符合您的想法:

alpha(beta());

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

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

alpha(beta);

此外在您的alpha中,您需要实际调用回调:

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

关于javascript - 回调函数在原始函数之前执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50076110/

相关文章:

javascript - jQuery 每个 "sleep"内有回调

javascript - 是否可以更改我保存数据的本地存储文件名?

PHP回调包含

c - 如何并行化 Windows 消息循环和 Hook 回调逻辑及其创建的 Ruby 线程?

javascript - 使用客户端人员选取器时未定义范围

javascript - SoundCloud JS 身份验证

javascript - 分解 Backbone.js set 方法时避免范围陷阱?

javascript - 根据条件检查遍历每个对象数组

javascript - 如何使用 document.querySelector 从使用 document.querySelector 的节点中选择特定的文本输出?

javascript - 使用局部变量从另一个函数停止 setTime