我正在尝试使用参数echo
和callback
创建一个函数value
,该函数以callback
为参数调用回调函数value
。
是否有人能够简要解释回调函数?它几乎是一个嵌套函数吗?
到目前为止我有这个:
function echo(value, callback) {
return callback(value);
}
module.exports.echo = echo;
答案 0 :(得分:1)
回调只是一个碰巧存在“可调用”的变量。没有比这更神奇了。
var myfunc = function() {
alert("I was called");
}
var foo = myfunc;
foo();
上面的代码段显示函数是数据或数据可以是可调用函数。正如数据可以是字符串或可打印为字符串一样。
在JS和许多其他高级动态语言中,函数和其他数据之间的区别仅仅是它可以被调用。它可以作为参数分配,存储,成为成员,返回并传入。在较低级别的语言中,您存储的是指向PC的指针以跳转到(函数指针)。
另一种看待它的方法是作为占位符 - 用于当其他代码达到特定状态时可以调用的函数。我说可能是 - 其他代码可能无法达到该状态,因为它是有条件的 - 例如错误回调。
答案 1 :(得分:0)
回调函数是在函数完成时使用的,并且您希望将结果返回给另一个函数。
这经常用于异步代码:
通常你会调用一个函数,等待它完成,函数返回一个值,但是对于异步进程,这将不起作用。所以你需要一个回调。调用异步函数时,脚本将在主线程继续时在后台执行此操作。因此,您无法以正常方式返回值,因为同步函数将暂停主线程直到完成。异步函数完成后,将使用回调来处理结果。