You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用谷歌翻译API的翻译应用:函数未返回API调用结果问题

问题解决方法

原因分析

getTranslation是async函数,这类函数始终会返回一个Promise对象——哪怕你在函数里直接return一个值,它也会被自动包装为resolved状态的Promise。你直接打印message时,异步请求还未完成,所以看到的是Promise对象;而函数内部的console.log(translation)能正确输出,是因为await已经等待axios请求完成并拿到了结果。

解决方案

方法1:使用.then()处理Promise

修改调用逻辑,通过Promise的then方法获取最终翻译结果:

let text = "hello world";
const {getTranslation} = apiTranslate;
getTranslation(text).then(message => {
    console.log(message); // 此处输出正确的翻译结果
});

方法2:用async/await包裹调用逻辑

将调用代码放在async函数中,通过await等待Promise完成:

async function fetchTranslation() {
    let text = "hello world";
    const {getTranslation} = apiTranslate;
    const message = await getTranslation(text);
    console.log(message); // 输出正确的翻译结果
}

fetchTranslation();

如果是在现代浏览器的顶级作用域(比如独立script标签),可以直接使用顶级await:

let text = "hello world";
const {getTranslation} = apiTranslate;
const message = await getTranslation(text);
console.log(message);

内容的提问来源于stack exchange,提问作者vatsal chauhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 10:29:54