Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.03.2017, 12:19
Новичок на форуме
Отправить личное сообщение для uadeveloper Посмотреть профиль Найти все сообщения от uadeveloper
 
Регистрация: 05.01.2011
Сообщений: 2

как дождаться Callback?
Привет.
Опишу проблему:

// эту функцию трогать нельзя.
function process(data, callback) {
   // Какие-то действия, потом callback
   callback();
}


Мне нужно дождаться выполнения callback внутри другой функции, и вернуть результат не очередным callback-ом, а return

function test() {

   process({}, function(result) {
        // result необходимо вернуть результатом test();
   });

}


Возможно ли такое? Строить очереди ожидания и дополнительные события не хотелось бы.
Ответить с цитированием
  #2 (permalink)  
Старый 28.03.2017, 12:46
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,007

Сообщение от uadeveloper
Возможно ли такое?
нет. Выполнение функции test() закончится при старте process, она не станет ждать вызова callback.

Вариант:
function test() {
   return new Promise(function(resolve, reject) {
     process({}, function(result) {
        resolve(result);
     });
  });
}

// вызов

test().then(function(result) {
  // используем result
});
Ответить с цитированием
  #3 (permalink)  
Старый 28.03.2017, 12:55
Новичок на форуме
Отправить личное сообщение для uadeveloper Посмотреть профиль Найти все сообщения от uadeveloper
 
Регистрация: 05.01.2011
Сообщений: 2

С промисами я уже пытался сделать, но по моей сути, та же разновидность коллбека.

Спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как получить результат от ajax запроса (из отдельного файла) 1Feniks1 AJAX и COMET 0 12.03.2017 18:45
Как создать цитатник? WGN Общие вопросы Javascript 10 29.01.2017 01:39
В callback функции теряется контекст. Как это обойти? xintrea AJAX и COMET 4 02.06.2013 11:40
Как сделать как в JQ? faforty Общие вопросы Javascript 8 14.11.2011 01:35
Как передать аргументы в callback функцию Artemiy-tlt jQuery 7 21.09.2011 15:08