为什么输出预期显示“ Bienvenue”时显示“ Promise {}”
const translate = require('google-translate-api');
async function translateSentence(sentence, languebase, languagetranslation) {
var sentenceTranslated = await translate(
sentence,
{ from: languebase, to: languagetranslation });
return sentenceTranslated.text;
}
var Translatedtext = translateSentence("Welcome", "en", "fr");
console.log(Translatedtext);
更新:
我正在尝试将转换后的数据返回JSON,这是我正在尝试做的事情:
data = new Object();
data.Translatedtext = Translatedtext;
var string = JSON.stringify(data);
console.log(JSON.parse(string));
输出显示为
{ Translatedtext: {} }
,我期望的像是{ Translatedtext: {Bienvenue} }
最佳答案
假设translate
返回一个Promise,我们可以创建一个异步函数并等待translateSentence
完成该操作,然后将文本添加到对象中。
可以这样进行:
async function performOperations(){
let Translatedtext = await translateSentence("Welcome", "en", "fr")
data = new Object();
data.Translatedtext = Translatedtext;
var string = JSON.stringify(data);
console.log(JSON.parse(string));
}
performOperations()
您正在做的是在对象处理完对Google api的请求之前先对其进行检查。因此,您的数据很有可能到达其位置,仅仅是因为您过早查看对象。