@n0thing

Как вернуть результат WebSocket / http запроса из функции?

Как правильно реализовать возврат результата работы функции, только после того как в ней отработает websocket / http запрос?
Например:
function something(param) {
  $http({
    method: 'POST',
    url: url,
    data: param,
  }).success(function (data) {
     return data
  })
}
и к примеру мы присваеваем результат функции какой-то переменной:
somevar = something(param) если http запрос не успевает отрабатывать, то ф-ция возвращает undefined. Как сделать так, чтоб функция отдавала результат только после отработки http запроса?
  • Вопрос задан
  • 2352 просмотра
Пригласить эксперта
Ответы на вопрос 2
DaFive
@DaFive
Перейдате callback-функцию. Запрос то асинхронный.
function something(param, callback) { }

....

.success(function(data) {
    callback(data);
});
Ответ написан
Комментировать
@Fenomen51
promise

// Загрузка содержимого балуна с сервера
function loadBalloonData (objectId) {
var dataDeferred = ymaps.vow.defer();
// Аякс
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST","request.php",true);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4){if(xmlhttp.status == 200){
xmlhttp.responseText;resolveData();
};}
};xmlhttp.send('n='+objectId);
// конец Аякс
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект