Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 09.02.2014
Сообщений: 95

Работа с асинхронным chrome.storage.local.get

12.12.2017, 13:03. Показов 5669. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
практикуюсь в создании расширения для google chrome

есть код для popup.js:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
chrome.storage.local.set({"value1": "2"});
 
var vCheck;
vCheck = "1";
 
async function f1()
{
    await chrome.storage.local.get("value1", function(result)
    {
        vCheck += result['value1'];
    });
}
 
f1();
vCheck += "3";
console.log(vCheck);
в задумке должен быть выведен результат "123", но выводит "13"
подскажите, как добиться нужного результата?


код manifest:
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
{
    "name":  "test", 
    "version": "0.1",  
    "description": "test",
    "manifest_version": 2, 
    "icons":
    {
        "128": "128.png"
    },
 
    "options_page": "options.html",
 
    "browser_action":
    {
        "default_title": "test",
        "default_icon": "128.png", 
        "default_popup": "popup.html" 
    },
 
    "permissions": 
    [
        "storage",
        "notifications"
    ],
 
    "background": 
    {
        "scripts": ["background.js"], 
        "persistent": false
    },
 
    "content_scripts": 
    [
        {
            "matches": [ "http://*/*","https://*/*" ],
            "js": [ "popup.js" ],
            "css": [ "main.css" ],
            "run_at": "document_end"
        }
    ]
 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.12.2017, 13:03
Ответы с готовыми решениями:

Local storage
Данный код работает правильно и при перезагрузке фоновый цвет остается. window.onload = function (){ if (localStorage.getItem...

Работа с асинхронным кодом без использования Promise и async/await
Привет. Я новичок в JS, поэтому вопрос может быть довольно простой, но к сожалению нагуглить нужный ответ не получилось. Итак есть две...

Local storage
Доброго времени суток. Недавно появился реквест относительно меню моего сайта. Суть такова: имеется индекс страничка с 2-мя фреймами - меню...

6
 Аватар для sad67man
2604 / 1508 / 689
Регистрация: 23.08.2015
Сообщений: 3,839
12.12.2017, 20:50
SevSeverial, У вас функция асинхронная, она становится в конец очереди на исполнение.
1
0 / 0 / 0
Регистрация: 09.02.2014
Сообщений: 95
13.12.2017, 03:53  [ТС]
salesman, спс за ответ
Я с этой проблемой и обратился сюда
Как мне "синхронизировать" её выполнение
Я даже здесь указал что я использовал для этого, не добившись результата
Подскажите, если у вас есть мысли по поводу решения
0
 Аватар для sad67man
2604 / 1508 / 689
Регистрация: 23.08.2015
Сообщений: 3,839
13.12.2017, 06:35
SevSeverial, Сам принцип асинхронности заключается в том, что браузер не ожидает готовности функции, и как только она сигнализирует о своей готовности, она становится в конец очереди на исполнение. И если вы делаете асинхронную функцию, то она должна быть самодостаточной, и не зависеть от "внешнего" кода. Т.е. все что вы хотите сделать, все должно быть внутри функции. Вам следует поменять общую логику. По другому никак.
2
0 / 0 / 0
Регистрация: 09.02.2014
Сообщений: 95
13.12.2017, 06:43  [ТС]
salesman, спс за ответ
есть ли другой способ хранить данные переменных на локальном носителе?
вроде, есть localstorage (html5) и cookie
на сколько актуальны механизмы для построения моей задачи (получить последовательный вывод данных, уйдя от асинхронности) или есть что-то поудачнее?
0
 Аватар для sad67man
2604 / 1508 / 689
Регистрация: 23.08.2015
Сообщений: 3,839
13.12.2017, 06:57
SevSeverial, Я не очень понимаю, в чем заключается ваша задача и что вы пытаетесь сделать)
localstorage как и cookie хранится в браузере, единственное отличие, что localstorage не гоняется в заголовках, при каждом запросе, т.е. эти данные не доступны на сервере, в отличие от cookie.

Добавлено через 9 минут
SevSeverial, А отличие chrome.storage.local от localstorage заключается в том, что localstorage привязан к домену, и хранит данные для конкретного домена. А chrome.storage.local хранит данные в целом, для браузера. Все зависит от задачи.
2
0 / 0 / 0
Регистрация: 09.02.2014
Сообщений: 95
13.12.2017, 07:11  [ТС]
salesman, спс за ответ
простая задача
получить последовательность выводом (типа цифр 1, 2 и потом 3) - это просто пример возможной задачи, упрощенный для понимания

value1 = "2";
vCheck = "1";
vCheck += value1';
vCheck += "3";

так вот
переменную value1 нужно где-то хранить, где-то на клиенте пользователя
что можно использовать? (chrome.storage.local.get, я так понимаю, не подходит для моей задачи)

Цитата Сообщение от sad67man Посмотреть сообщение
единственное отличие, что localstorage не гоняется в заголовках, при каждом запросе, т.е. эти данные не доступны на сервере, в отличие от cookie.
а можете поподробнее или статейку почитать кинуть?
Цитата Сообщение от sad67man Посмотреть сообщение
А chrome.storage.local хранит данные в целом, для браузера.
вот мне это, наверно, и нужно...

Добавлено через 12 минут
>>Я не очень понимаю, в чем заключается ваша задача и что вы пытаетесь сделать)
Может не углядели - делаю расширение для Google Chrome
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.12.2017, 07:11
Помогаю со студенческими работами здесь

Local Storage
Пример: есть интернет-магазин, без регистрации. Добавляем товары в корзину. Смотрим в веб-консили - сессий нет, куи нет. Есть только Local...

Thread Local Storage
Всем доброго времени суток! Интересно, кто-нибудь применял TLS в жизни? Мне хотелось бы узнать в какой ситуации и какие преимущества это...

Хранение записей в local storage
Добрый день! Подскадите пожалуйста. Как применить local storage в данном случае? index.html <!DOCTYPE html> <html...

Перенос данных из Thread Local storage
Добрый вечер. Допустим в одной c++ библиотеке (Func1(...), Func2(...)) используется TLS. В Func1(...) TLS устанавливается, в...

Сохранение состояния чекбоксов в Local Storage
Помогите решить проблему . Нужно записать данные в Local Storage по отмеченным чекбоксам. $(document).on('turbolinks:load', function()...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru