gpt4 book ai didi

javascript - 为什么它显示 Nodejs 的待处理 promise

转载 作者:行者123 更新时间:2023-12-03 03:01:11 26 4
gpt4 key购买 nike

为什么输出在预期显示“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} }

最佳答案

因为 async 函数返回 Promise,所以 Translatedtext 是对 Promise 的引用,当您将其转储出来时,您会看到该 Promise 的详细信息,包括事实正在等待处理。

如果您想获得结果,则必须await(或使用then):

var Translatedtext = await translateSentence("Welcome", "en", "fr");
// ------------------^
console.log(Translatedtext);

(如果拒绝则处理异常),或

translateSentence("Welcome", "en", "fr")
.then(Translatedtext => {
console.log(Translatedtext);
})
.catch(err => {
// Handle the fact an error occurred
});

请注意,要使用 await,您必须处于 async 函数中。

关于javascript - 为什么它显示 Nodejs 的待处理 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47378903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com