如何在node.js中返回翻译后的文本google-translate-api

时间:2018-08-08 05:46:12

标签: javascript node.js google-api node-modules

大家好,我想将变量传递给google-translate-api翻译函数。我该怎么办。

translate(txt, {from: 'en', to: 'ja'}).then(res => {
  var translated=res.text;
  return translated;
});
consol.log(translated);

但是我没有得到结果未定义,请告诉我如何返回翻译后的文本

2 个答案:

答案 0 :(得分:0)

您正试图在错误的范围内记录“ translated”变量。您应该将console.log函数移动到回调方法中(我的意思是进入“ then”函数)。

translate(txt, {from: 'en', to: 'ja'}).then(res => {
  consol.log(res.text);
});

但是,如果您想使用功能外的转换后的值,则可以使用“ await”(更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await

async function myTranslateFn(text){
   var res = await translate(text, {from: 'en', to: 'ja'}); 
   return res.text;
}

var result = myTranslateFn("flower");

答案 1 :(得分:0)

使用函数将转换调用包装起来,然后将回调传递给外部函数

callTranslate(txt, fn) {
    translate(txt, {from: 'en', to: 'ja'}).then(res => {
      fn(res.text);
    });
}

现在,每当需要调用翻译API时,都可以这样做:

callTranslate('yourText', (translated) => { console.log(translated); })
// add any logic in the callback itself if you want to further process the result