chrome.storage.sync.get
асинхронно. Вы возвращаете исходный пустой массив до загрузки значений из хранилища.
Вы можете вернуть обещание, которое разрешается с результатом, когда оно выполнено.
async getSpeedDials() {
return new Promise(resolve => {
chrome.storage.sync.get('speedDials', result => {
resolve(result);
});
}
}
Обратите внимание, что когда вы делаете это, получение значения также должно выполняться по-другому.
Внутри функции async
мы можем использовать await
, чтобы получить значение:
let speedDials = await getSpeedDials();
Если нет:
let speedDials = [];
getSpeedDials().then(dials => {
speedDials = dials
});
// Note that when doing this, everything under this function will be executed before speedDials has any entries.
// To prevent this, make your function async, and use the aforementioned method (await)
Дайте мне знать, если у вас есть какие-либо вопросы