2017-07-14 72 views
0

我设置一个承诺像获得价值并将其ASIGN给一个变量

idbKeyval.set('example', 5) 
    .then(() => console.log('It worked!1')) 
    .catch(err => console.log('It failed!', err)); 

然后,清爽的页面后,我要检查如果设置和ASIGN这个“5”变。以下是来自IDB-Keyval github的代码,但我无法从中获得价值!

idbKeyval.get('hello').then(val => console.log(val)); 
+0

'我设置一个承诺like' - 不,你是不是“设置一个承诺”,要设置一些所谓的'example'与值'5 '使用任何idbKeyval我s ...然后,您正在尝试读取一个名为'hello'的vlaue - 可能不存在,因为您只设置了一个名为'example'的值或 –

+0

或简短版本......''hello '!=='example'' –

+0

它是'用IndexedDB实现的基于承诺的keyval存储'。语法来自https://github.com/jakearchibald/idb-keyval – marta

回答

0

您可以在https://jsbin.com/zadarebili/edit?html,output

看到使用idb-keyval使用async/await(简化了语法)的工作的例子我能不包括堆栈溢出的现场片断,因为他们的嵌入功能的工作方式,IndexedDB的受阻,但相关的代码是

<body> 
    <button id="set">Set</button> 
    <button id="get">Get</button> 
    <p id="log"></p> 
    <script src="https://unpkg.com/[email protected]"></script> 
    <script> 
    const KEY = 'example-key'; 
    const VALUE = 'example-value'; 

    function log(message) { 
     document.querySelector('#log').innerText = message; 
    } 

    async function get() { 
     return await idbKeyval.get(KEY); 
    } 

    async function set() { 
     await idbKeyval.set(KEY, VALUE); 
    } 

    document.querySelector('#set').addEventListener('click', async() => { 
     await set(); 
     log(`Key ${KEY} was saved with value ${VALUE}.`); 
    }); 

    document.querySelector('#get').addEventListener('click', async() => { 
     const value = await get(); 
     log(`Key ${KEY} was read with value ${value}.`); 
    }); 
    </script> 
</body> 
+0

非常感谢!我会查一下 – marta

相关问题