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>
内部的に、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
必要な場合はそれに応じてコードを変更することです...