Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   как дождаться Callback? (https://javascript.ru/forum/events/68134-kak-dozhdatsya-callback.html)

uadeveloper 28.03.2017 12:19

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

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


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

function test() {

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

}


Возможно ли такое? Строить очереди ожидания и дополнительные события не хотелось бы.

Alexandroppolus 28.03.2017 12:46

Цитата:

Сообщение от uadeveloper
Возможно ли такое?

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

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

// вызов

test().then(function(result) {
  // используем result
});

uadeveloper 28.03.2017 12:55

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

Спасибо.


Часовой пояс GMT +3, время: 22:52.