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

Expo SecureStore返回对象而非字符串?如何提取纯TOKEN值

问题解答

1. Expo SecureStore是否会为字符串值返回对象?

不会。SecureStore.getItemAsync()本身返回的是字符串(存储的值)或null,你看到的带_A、_x等属性的对象,是未正确处理的Promise实例——因为调用的是异步函数,却没等待它执行完成。

2. 如何获取纯TOKEN字符串?

问题出在getValueFor的调用方式上:它是异步函数,直接调用会返回Promise对象而非最终结果,必须通过await或.then()来获取真实的TOKEN值。

正确调用示例

方式一:在async函数内使用await

// 必须在async函数中使用await
async function fetchTokens() {
  const accessToken = await getValueFor("jwt_access");
  const refreshToken = await getValueFor("jwt_refresh");
  console.log(accessToken); // 空字符串或false
  console.log(refreshToken); // 纯TOKEN字符串或false
}

fetchTokens();

方式二:用.then()链式处理

getValueFor("jwt_refresh")
  .then(refreshToken => {
    console.log(refreshToken); // 纯TOKEN字符串或false
  })
  .catch(err => {
    console.error(err);
  });

补充说明

你的getValueFor函数逻辑本身没问题:获取到值就返回字符串,否则返回false。但异步函数的特性是返回Promise,必须等待它resolve后才能拿到真实值——你之前直接调用得到的是Promise的内部状态对象,其中_z字段是resolve后的真实值,但直接读取_z是不规范的,正确做法是用await或.then()处理异步结果。

内容的提问来源于stack exchange,提问作者saviour israel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 11:55:19