关于javascript:创建一个调用’回调函数’的函数

Making a function that calls a 'callback function'

本问题已经有最佳答案,请猛点这里访问。

我试图创建一个参数为callbackvalue的函数echo,它调用回调函数callback,参数为value

有人能简要解释回调函数吗?它几乎是一个嵌套函数吗?

到目前为止,我有:

1
2
3
4
5
function echo(value, callback) {
    return callback(value);
}

module.exports.echo = echo;


回调只是一个恰好包含"可调用"内容的变量。再没有比这更神奇的了。

1
2
3
4
5
6
var myfunc = function() {
  alert("I was called");
}
var foo = myfunc;

foo();

上面的代码片段显示函数是数据,或者数据可以是可调用函数。就像数据可以是一个字符串,也可以作为一个字符串打印。

在JS和许多其他高级动态语言中,函数和其他数据之间的区别仅仅在于可以调用它。它可以作为参数分配、存储、成为成员、返回和传入。在低级语言中,您正在存储一个指针,供PC跳转到(函数指针)。

另一种看它的方法是作为一个位置保持器-对于一个函数,当其他代码到达一个特定的状态时可以调用它。我说可能是-其他代码可能不会达到该状态,因为它是有条件的-例如错误回调。


回调函数是在函数完成并希望将结果返回到另一个函数时使用的函数。

这通常用于异步代码:
通常,您会调用一个函数,等待它完成,然后函数返回一个值,但是对于异步进程,这将不起作用。所以你需要回电话。当调用异步函数时,脚本将在后台执行此操作,而主线程将继续运行。所以不能以正常方式返回值,因为同步函数将停止主线程,直到完成为止。异步函数完成后,将使用回调来处理结果。