我正在尝试通过创建 localForage 的全局实例来向纯形式Web 组件添加localForage支持:
// create a global appStorage object that mimics localStorage API (greater storage)
window.appStorage = localforage.createInstance({
driver: [
localforage.INDEXEDDB,
localforage.WEBSQL,
localforage.LOCALSTORAGE
],
name: 'product-name',
version: 1.0,
storeName: 'app'
});
storage
并通过属性将其分配给纯形式的实例:
<pure-form src="path-to-schema.json" storage="appStorage"></pure-form>
在内部,纯形式执行window[self.storage]
以获取存储对象的句柄并使用.getItem
,.setItem
来同步设置和检索值。
麻烦的是 localForage 是异步的,这意味着.getItem
,.setItem
期望通过回调返回值。因此我目前的逻辑将不起作用:
// get value from web storage
var storedContent = window[self.storage].getItem('item-key');
我意识到我可以将调用包装在 Promise 中,但就其本身而言,纯形式不需要承诺,我不想为此添加该依赖项。
我想做的是检查是否.getItem
或.setItem
需要回调,如果是,请相应地修改代码......