У меня есть этот один большой многофункциональный функции:Несколько функций в Node.js
function trans() {
var credentials = {
clientId: 'TurboFanTrans',
/* Client ID from the registered app */
clientSecret: 'Gkqa2Ru37DeHAfR4AdH/sj94J5Ge1S8Ad7Spp89MMIs=' /* Client Secret from the registered app */
};
translator.detect(credentials, text, detectCb);
function detectCb(err, from) {
if (err) {
sendMain('error', err);
return;
}
translator.translate(credentials, text, from, lang, translateCb);
}
function translateCb(err, translated) {
if (err) {
sendMain('error', err);
return;
}
console.log(text + lang + "=>" + translated);
}
}
Предположим, все объявленную, так как его многофункциональным, я делаю что-то неправильно, когда я звоню trans()
здесь фрагмент кода :
case 'translate':
text += args[1];
lang += args[2];
trans();
text = "";
lang = "";
break;
При вызове, так как его все перепутались, text
и lang
возвращение как пустые строки (они изначально). Может ли кто-нибудь из вас, ребята, помочь мне разобраться в коде или в моем мозгу? конечным результатом должен быть переведенный текст text
на языке чего-либо в lang
. Заранее спасибо!
Существует около 573 вещей, которые _could_ были неправильными в вашем коде или в службе, которую вы используете, но не видя полного кода, это трудно сказать. Можете ли вы добавить полный код к сути на Github или на jsfiddle? Первое, что я считаю проблематичным, это то, что значения переменных 'text' и' lang' определяются вне метода 'trans' и предполагается, что они существуют внутри. Но опять же, что-то еще, что могло произойти. – jakerella
Это предложение, о котором вы сказали, вероятно, является проблемой, но вот полный код: http://pastebin.com/bTH99Q46 – Vikaton
Sooo, это много кода. ;) Но, глядя на это снова, я думаю, что конкретная проблема заключается в том, что вы используете асинхронную службу (Bing?) Внутри функции 'trans()', что означает, что 'trans()' будет возвращать ** до ** перевод завершен, и в этот момент вы устанавливаете 'text' и' lang' в пустые строки. – jakerella