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


HarmonyOS
9天前
浏览
收藏 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);
   }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
分享
微博
QQ
微信
回复
8天前
相关问题
HarmonyOS 证书有效期疑问
777浏览 • 1回复 待解决
HarmonyOS 用户首选项是线程安全
1067浏览 • 1回复 待解决
HarmonyOS 首选项报错数据报错
820浏览 • 1回复 待解决
HarmonyOS 调试证书有效期过短问题
791浏览 • 1回复 待解决
首选项preferences相关
831浏览 • 1回复 待解决
HarmonyOS 首选项示例
718浏览 • 1回复 待解决
HarmonyOS 获取首选项取值方式
1000浏览 • 1回复 待解决
HarmonyOS 首选项回调失效
821浏览 • 1回复 待解决