如何从回调中返回变量?

问题描述 投票:0回答:2

我是新手,现在我无法从回调函数返回值

function SumCallback(var1,var2,callback){
callback(var1+var2)
}

function Sum(var1,var2){
SumCallback(var1,var2,function(result){
console.log(result) //5
return result
})
}

console.log(Sum(3,2)) //undefined

如何以正确的方式返回值?

node.js callback return anonymous-function
2个回答
0
投票

执行看起来像那样

| - >这称为“SumCallback”

| - >这称为“回调”

| --->这会调用console.log(结果)

| --->返回“结果”

| - >返回undefined

| - >返回undefined

您只需要返回回调。

function SumCallback(var1,var2,callback){
 return callback(var1+var2)
}

function Sum(var1,var2){
 return SumCallback(var1,var2,function(result){
  console.log(result) //5
  return result
 })
}

console.log(Sum(3,2)) //5

新的执行看起来像那样

| - >这称为“SumCallback”

| - >这称为“回调”

| --->这会调用console.log(结果)

| --->返回“结果”

| - >返回“回调”的值(结果)

| - >返回“SumCallback”的值(结果)


0
投票

这可能有效:

function SumCallback(var1, var2, callback) {
  callback(var1 + var2)
}

function Sum(var1, var2) {
  let sumResult = 0
  SumCallback(var1, var2, function (result) {
    // return result
    sumResult = result
  })
  return sumResult
}

console.log(Sum(3, 2)) //undefined

另外,在使用Promise时,最好使用async/awaitcallback

© www.soinside.com 2019 - 2024. All rights reserved.