У меня есть расширение chrome с файлом javascript, который исполняется. Файл javascript делает этот вызов background.html:
action.js
var action = "";
chrome.extension.sendRequest({method: "getLocalStorage", key: "action"},
function(response) {
alert(response.data);
action = response.data;
});
alert('action:'+action);
и background.html:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.method == "getLocalStorage")
sendResponse({data: localStorage[request.key]});
else
sendResponse({});
Поведение, которое я получаю, это окно с предупреждением «action:
», а затем окно с сообщением «video
», которое является правильным значением для действия.
Почему эти окна оповещений отображаются не по порядку, и почему переменная action
не получает значение response.data
? Связано ли это с задержкой метода sendRequest
? Как я могу заставить скрипт ждать, чтобы я мог получить значение? (Мне нужно сделать этот запрос несколько раз - у меня есть 4 значения, которые мне нужно запросить)