怎么给HarmonyOS用户首选项中的数据设置有效期?


HarmonyOS
2025-04-23 10:53:47
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
SSTTES

为数据设置有效期,需要在存储数据时添加一个过期时间戳,并在读取数据时检查当前时间是否在有效期内,代码参考:

type DataType = { value: ValueType | object, expire: number };

class LocalStorage {
   async put(key: string, value: ValueType | object, expire?: Date) {
       const data: DataType = {
           value,
           expire: expire ? expire.getTime() : -1
       };
       const dataStr = JSON.stringify(data);
       await this.preference.put(key, dataStr);
       await this.preference.flush();
   }

   async getValue(key: string): Promise<ValueType | object> {
       if (!this.preference.has(key)) {
           return Promise.resolve(null);
       }
       let value = await this.preference.get(key, '') as string;
       if (isJsonObject(value)) {
           const data: DataType = JSON.parse(value);
           if (data.expire === -1 || data.expire > Date.now()) {
               return Promise.resolve(data.value);
           } else {
               this.preference.delete(key);
           }
       }
       return Promise.resolve(null);
   }
}
分享
微博
QQ
微信
回复
2025-04-24 10:29:19
相关问题
HarmonyOS 证书有效期疑问
1380浏览 • 1回复 待解决
HarmonyOS 首选项报错数据报错
1132浏览 • 1回复 待解决
HarmonyOS 用户首选项是线程安全
1362浏览 • 1回复 待解决
HarmonyOS 首选项无法读取Map类型数据
1041浏览 • 1回复 待解决
首选项preferences相关
1146浏览 • 1回复 待解决
HarmonyOS 调试证书有效期过短问题
1283浏览 • 1回复 待解决
HarmonyOS 首选项示例
1018浏览 • 1回复 待解决
HarmonyOS 创建首选项报错code:15500000
1174浏览 • 1回复 待解决
HarmonyOS 获取首选项取值方式
1289浏览 • 1回复 待解决