Вы можете использовать Promise
, async/await
, чтобы справиться с этим. Допустим, вы хотите обрабатывать chrome.storage.local.get
синхронно, чтобы continueCode()
мог иметь необходимые данные.
Получить данные:
function readLocalStorage(key) {
return Promise((resolve, reject) => {
chrome.storage.local.get([key], function(result) {
if (Object.values(result)[0] != undefined) {
resolve(Object.values(result)[0].val);
} else {
reject();
}
});
});
}
Основная функция:
function async getData() {
let key1 = await readLocalStorage('key1');
object1.innerHTML = key1;
let key2 = await readLocalStorage('key1');
object1.innerHTML = key2;
continueCode();
}
или, если вы не знакомы с поведением async/await
. Вы можете заключить эти два обещания в массив и использовать Promise.all
, например, так:
function async getData() {
let key1 = readLocalStorage('key1');
let key2 = readLocalStorage('key2');
Promise.all([key1, key2]).then(values => {
object1.innerHTML = values[0];
object2.innerHTML = values[1];
continueCode();
});
}
Надеюсь, это поможет!