2017-08-17 33 views
0

我想在回調函數返回兩個變量,它拋出回調不是一個函數錯誤,但返回單個變量時工作正常對於多個變量返回,回調不是nodeJS中的函數嗎?

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

回調(translatedText,字符串化)被扔error.This是函數調用語句

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

你的回調看起來不錯,錯誤是什麼? – James

+0

'回調(translatedText,stringify) ^ TypeError:回調不是函數' –

+0

它拋出這個錯誤@James –

回答

0

這可能是因爲當你打開大括號在下一行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 ---- 
}); 

隨着對同一行功能的開括號,以確保有沒有混淆。

+0

儘管在示例中很明顯,如果情況確實如此,代碼將不會運行 - 我的猜測是這只是一個錯字。 – James

+0

@詹姆斯,也許是吧。但不知道上下文,我認爲這是可能的,取決於前後的內容。 – arbuthnott

+0

我的觀點是如果出現這種情況,會出現一個更明顯的錯誤,即「意外的令牌」。代碼不會告訴OP他們的回調不是函數。我的猜測是,OP沒有傳遞正確的參數,但正如你所說,沒有更多的上下文,它很難回答。 – James