chrome.storage получить установленный порядок - PullRequest
0 голосов
/ 08 декабря 2018

Я сейчас работаю с chrome.storage.sync.get и chrome.storage.sync.set.Проблема, которую я получаю, заключается в том, что я хочу, чтобы моя функция

get -> set -> get -> set

.Но на самом деле это

get -> get -> set -> set ,

, и это портит мой код.Есть ли способ заставить chrome.storage.sync.get и chrome.storage.sync.set работать в порядке, который я установил и хочу сделать?

1 Ответ

0 голосов
/ 10 декабря 2018

вы можете использовать Promises для выполнения асинхронных вызовов в нужной вам последовательности

function getStorage (key) {
    return new Promise((resolve, reject) => {
        chrome.storage.sync.get(key, (value)=>{
            if(chrome.runtime.lastError){
                return reject(chrome.runtime.lastError);
            }
            return  resolve(value);
        })
    });
}

function setStorage (item) {
    return new Promise((resolve, reject) => {
        chrome.storage.sync.set(item, ()=>{
            if(chrome.runtime.lastError){
                return reject(chrome.runtime.lastError);
            }
            return  resolve();
        })
    });
}

getStorage('key')
    .then(value => {
        setStorage({key2:"value2"})
    })
    //...
    .catch(err => {
       //handle err 
    });
...