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

在JavaScript中调用GET接口如何正确获取返回的字符串类型token

问题核心原因
  • 所有带async关键字的异步函数执行后默认返回Promise对象,你调用login()时没有添加await关键字,因此拿到的token变量是Promise实例,而非接口实际返回的字符串。
  • Fetch API返回的Response对象不存在data属性(该属性是第三方请求库axios的特有返回字段),你的接口返回纯字符串格式内容,需要调用Response实例的text()异步方法读取响应内容,不能使用json()方法(该方法仅用于JSON格式的响应解析)。
修正后代码
// 修正login函数,调用text()读取字符串响应
async function login() {
    let response = await fetch("generate");
    // 读取纯字符串格式的响应内容
    return await response.text();
}

getUserToken: async function () {
    // 调用异步函数login必须加await
    var token = await login()
    console.log("token: "+ token) // 此处可以正常打印接口返回的字符串
    return token;
}
补充注意事项

如果你后续调用getUserToken方法,同样需要加await关键字,或者使用.then()链式调用获取返回值,示例:

// 调用示例1:在其他async函数内调用
async function otherFunc() {
  const userToken = await yourObj.getUserToken();
  // 后续使用token的逻辑
}

// 调用示例2:用then链式调用
yourObj.getUserToken().then(token => {
  // 后续使用token的逻辑
})

内容的提问来源于stack exchange,提问作者Pavel Petrashov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:15:05