SharedStorage: set() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

SharedStorage 接口的 set() 方法会在当前源的共享存储中存储一个新的键值对,或者更新一个已有的键值对。

语法

js
set(key, value)
set(key, value, options)

参数

key

表示您想要添加或更新的键值对中的键的字符串。

value

表示您想要添加或更新的值的字符串。

options 可选

一个包含以下属性的选项对象

ignoreIfPresent

一个布尔值。如果具有指定 key 的键值对已存在,则值为 true 会导致 set 操作中止。默认值 false 会导致 set 操作覆盖之前的值。

返回值

一个 Promise,它将以 undefined 解析。

异常

  • 如果出现以下情况,Promise 会以 TypeError 拒绝:
    • 由于共享存储不可用(例如,通过浏览器设置禁用了共享存储),创建的条目未能成功存储在数据库中。
    • key 和/或 value 超出了浏览器定义的 maximum length。
    • 调用站点未在成功的 隐私沙盒注册流程中包含共享存储 API。
  • 对于 WorkletSharedStorage,如果未通过 SharedStorageWorklet.addModule() 添加 worklet 模块,Promise 会以 TypeError 拒绝。

注意:对于 WindowSharedStorage,如果 set() 操作因共享存储不可用以外的原因未能成功写入数据库,则不会抛出错误——该操作仍会以 undefined fulfilled。

示例

js
window.sharedStorage
  .set("ab-testing-group", "0", {
    ignoreIfPresent: true,
  })
  .then(() => console.log("Set operation completed"));

规范

规范
共享存储 API
# dom-sharedstorage-set

浏览器兼容性

另见