setItem<T> method

void setItem<T>(
  1. String key,
  2. T value, {
  3. ElSerialize? serialize,
  4. Duration? expire,
})

设置数据

Implementation

void setItem<T>(
  String key,
  T value, {
  ElSerialize? serialize, // 如果 value 不是基本类型,那么必须指定序列化才能正确缓存
  Duration? expire, // 设置过期时间
}) {
  var result = serialize == null ? value : serialize.serialize(value);

  if (expire != null) {
    result = {
      expireKey: currentMilliseconds + expire.inMilliseconds,
      expireDataKey: result,
    };
  }

  data[key] = result;
  try {
    debounceSerialize();
  } catch (error) {
    logger.e(error, 'ElStorage - $key Error: 持久化失败');
    logger.e(data, '持久化失败的数据结构如下');
  }
}