为什么输出预期显示“ 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的请求之前先对其进行检查。因此,您的数据很有可能到达其位置,仅仅是因为您过早查看对象。

09-16 14:59