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);
    });
}