Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.03.2018, 09:42
Интересующийся
Отправить личное сообщение для grigandal Посмотреть профиль Найти все сообщения от grigandal
 
Регистрация: 18.02.2018
Сообщений: 26

Return из Callback
Вопрос Как сделать return из callback-а?

например, есть функция

getParams(["ArrayOfParamNames"], function(CallbackResult){
    //code
});

Мне нужно достать этот CallbackResult

типа

function getResult(){
    getParams(["Param1","Param2"], function(res){
        //Код в колбэке
    });
    return res; // ретёрним тот самый res, который объявляли в getParams(["Param1","Param2"], function(res)...);
}
Ответить с цитированием
  #2 (permalink)  
Старый 15.03.2018, 09:48
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,797

"getParams" выполняет что-то асинхронно?
Ответить с цитированием
  #3 (permalink)  
Старый 15.03.2018, 09:51
Интересующийся
Отправить личное сообщение для grigandal Посмотреть профиль Найти все сообщения от grigandal
 
Регистрация: 18.02.2018
Сообщений: 26

Nexus,
Сообщение от Nexus Посмотреть сообщение
"getParams" выполняет что-то асинхронно?
ну, скорее всего да
Я использую функцию chrome.storage.local.get(["params"], function(res))
По-моему, она выполняет ассинхронно

Последний раз редактировалось grigandal, 15.03.2018 в 09:57.
Ответить с цитированием
  #4 (permalink)  
Старый 15.03.2018, 09:57
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,797

grigandal, никак не вернуть результат, на то метод и принимает вторым аргументом callback.
Выполняйте операцию в нем.
Ответить с цитированием
  #5 (permalink)  
Старый 15.03.2018, 10:10
Интересующийся
Отправить личное сообщение для grigandal Посмотреть профиль Найти все сообщения от grigandal
 
Регистрация: 18.02.2018
Сообщений: 26

Nexus,
Неужели никак не положить результат в глобальную переменную?

Я должен вызывать эту функцию пр наведении на DOM-элемент, и соответственно на странице после выплонения возникают изменения
А так как функция ассинхронная, и выполняется не мгновенно, то изменения происходят с задержками и лагами

Я хочу типа с помощью костыля setInterval каждые 5 секунд доставать эти параметры в глобальную переменную, а DOM уже менять в зависимости от этой переменной
Ответить с цитированием
  #6 (permalink)  
Старый 15.03.2018, 10:17
Интересующийся
Отправить личное сообщение для grigandal Посмотреть профиль Найти все сообщения от grigandal
 
Регистрация: 18.02.2018
Сообщений: 26

Разобрался, все просто
var global;
function getResult() {
        getParams(["Param1", "Param2"], function (res) {
            global = res;
        });
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти различие между двумя массивами? Maxmaxmaximus4 Оффтопик 169 10.12.2013 16:43
Jin: И снова о наследовании tenshi Ваши сайты и скрипты 16 19.08.2013 20:30
Функция проверки не пропускает Sergios Общие вопросы Javascript 4 05.07.2012 21:26
Календарь,формат даты день-месяц-год изменить на год-месяц-день tusha-kutusha Элементы интерфейса 0 07.05.2012 17:03
Наболевший this. Не могу понять Harvey Общие вопросы Javascript 6 19.08.2011 17:30