@andrems

Как вернуть значение переменной из callback -функции?

Добрый день! Не получается вернуть значение переменной из callback- функции, которая взаимодействует с chrome.storage. Первый alert возвращает undefined , а второй срабатывает с необходимым значением переменной. Что не так с кодом?

var myData = { country: "Russia" };
chrome.storage.local.set(myData);
function getValue(callback) {
    chrome.storage.local.get(myData, function(response) {
      if (callback && typeof(callback) === "function") {
            callback(response);
       }
   });
}

var country = getValue(function(response) {

    alert(response.country);
    return response.country;

});
alert(country);
  • Вопрос задан
  • 328 просмотров
Решения вопроса 1
@MNB
асинхронные функции не могут вернуть нужное вам значение. На то они и АСИНХРОННЫЕ. выполняются параллельно основному потоку.

var country;
getValue(function(response) {
    country = response.country;

    // тут делаем что-то с кантри.
});

// тут country всегда будет undefined (как правило)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы