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

相關問題