我无法理解JavaScript中的回调如何获得他们的参数。或者换句话说:如何实现更高阶的函数,使其回调接受标准的err
和data
参数。
与回调示例中的in this article on asynchronous JavaScript一样,通常使用(我知道这是常见的,因为我看到Node.js中使用的模式正是moongose(即{{3 }})):
function getData(options, callback) {
$.get("example.php", options, function(response) {
callback(null, JSON.parse(response));
}, function() {
callback(new Error("AJAX request failed!"));
});
}
// usage
getData({name: "John"}, function(err, data) {
if(err) {
console.log("Error! " + err.toString())
} else {
console.log(data);
}
});
回调如何得到参数err
& data
基于getData()
函数如何在上面声明?
答案 0 :(得分:4)
调用该函数时,会将参数传递给函数。
function foo(arg) {
console.log(arg);
}
foo("This is the value");
当它是回调函数时仍然如此。
function foo(arg) {
console.log(arg);
}
function bar(callback) {
callback("This is the value");
}
bar(foo);
当回调函数由其他人编写的代码调用时,它仍然是正确的,该代码存在于库中,而您没有检查源代码。