大家好,我想将变量传递给google-translate-api翻译函数。我该怎么办。
translate(txt, {from: 'en', to: 'ja'}).then(res => {
var translated=res.text;
return translated;
});
consol.log(translated);
但是我没有得到结果未定义,请告诉我如何返回翻译后的文本
答案 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