【问题标题】:Callback is not a function in nodeJS for multiple variables returning?回调不是nodeJS中用于返回多个变量的函数吗?
【发布时间】:2017-08-17 17:50:31
【问题描述】:

我试图在回调函数中返回两个变量,它抛出回调不是函数错误,但返回单个变量时工作正常

function TranslatetoHindi(text,suggestion,callback) {
translatedText = text
stringify = JSON.stringify(suggestion)
*--------------------
 --------------------code block here --------*
        callback(translatedText,stringify)
}

callback(translatedText,stringify) 抛出错误。这是函数调用语句

TranslatetoHindi(var1,var2,function(returnedText, returned) 
{
---some code here which uses var1 and var2 ----
}

【问题讨论】:

  • 你的回调看起来不错,有什么错误?
  • 'callback(translatedText, stringify) ^ TypeError: callback is not a function'
  • 它抛出这个错误@James
  • 在你的callback 中使用returnedTextreturned 比使用回调传入的参数更常规:var1var2。但它不应该抛出错误,假设你的 vars 定义在与你调用 TranslatetoHindi 的范围相同的范围内。
  • @Karthikeyan_kk here's your code working,正如我所说的,它看起来对我来说很好。如果是这种情况,您的示例无法反映您的实际代码。

标签: node.js asynchronous callback


【解决方案1】:

当您在下一行打开花括号时,可能是 javascript 误读了您的函数输入:

TranslatetoHindi(var1,var2,function(returnedText, returned) 
{
---some code here which uses var1 and var2 ----
}

当代码看起来有问题时,Javascript 经常会尝试帮助,方法是添加分号等。试试这个表单,看看它是否有效:

TranslatetoHindi(var1,var2,function(returnedText, returned) {
---some code here which uses var1 and var2 ----
});

左大括号与函数在同一行,以确保没有混淆。

【讨论】:

  • 尽管在示例中很明显,但如果是这种情况,代码将无法运行 - 我猜这只是一个错字。
  • @James,也许是这样。但不知道上下文,我认为这是可能的,这取决于之前和之后发生的事情。
  • 我的意思是,如果是这种情况,就会出现更明显的错误,即Unexpected token。代码不会告诉 OP 他们的回调不是函数。我的猜测是 OP 没有传递正确的参数,但是正如你所说,没有更多的上下文很难回答。
猜你喜欢
  • 1970-01-01
  • 2018-11-16
  • 1970-01-01
  • 2019-09-08
  • 1970-01-01
  • 2015-10-08
  • 2021-06-01
  • 2020-12-01
  • 1970-01-01
相关资源
最近更新 更多