Javascript 回调函数的结果
我正在尝试将结果回调到函数 我尝试了以下方法:Javascript 回调函数的结果,javascript,Javascript,我正在尝试将结果回调到函数 我尝试了以下方法: function multiply(x,y, callback) { let res = x * y callback(res) } function hardOperation(a,b) { let res = a + b + multiply(a,b) console.log("The result is " + res) } hardOperation(2,2) 然而,我得到: TypeErro
function multiply(x,y, callback) {
let res = x * y
callback(res)
}
function hardOperation(a,b) {
let res = a + b + multiply(a,b)
console.log("The result is " + res)
}
hardOperation(2,2)
然而,我得到:
TypeError: callback is not a function
我是否需要定义一个全局变量,或者是否可以将res
传递回函数
谢谢你的回复 您需要定义一个函数来检索回调值
function multiply(x,y, callback) {
let res = x * y
callback(res)
}
function hardOperation(a,b) {
multiply(a, b, function(res){
res = a + b + res
console.log("The result is " + res);
})
}
hardOperation(2,2)
您需要定义一个函数来检索回调值
function multiply(x,y, callback) {
let res = x * y
callback(res)
}
function hardOperation(a,b) {
multiply(a, b, function(res){
res = a + b + res
console.log("The result is " + res);
})
}
hardOperation(2,2)
回调
实际上不是一个函数,因为您没有定义它。您正在调用的函数需要三个参数:
function multiply(x,y, callback) {
你只给了它两个:
multiply(a,b)
所以第三个参数是未定义的。您还希望它返回一个值,但是multiply
函数中没有返回任何内容。因此,返回值也将是未定义的
multiply()
函数试图演示如何使用回调函数代替返回值。例如,这是异步代码的常见模式。因此,与其依赖于返回值,不如为其提供一个函数来对结果执行操作。大概是这样的:
function hardOperation(a,b) {
multiply(a,b, function (res) {
res = a + b + res;
console.log("The result is " + res);
});
}
回调
实际上不是一个函数,因为您没有定义它。您正在调用的函数需要三个参数:
function multiply(x,y, callback) {
你只给了它两个:
multiply(a,b)
所以第三个参数是未定义的。您还希望它返回一个值,但是multiply
函数中没有返回任何内容。因此,返回值也将是未定义的
multiply()
函数试图演示如何使用回调函数代替返回值。例如,这是异步代码的常见模式。因此,与其依赖于返回值,不如为其提供一个函数来对结果执行操作。大概是这样的:
function hardOperation(a,b) {
multiply(a,b, function (res) {
res = a + b + res;
console.log("The result is " + res);
});
}