Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Возврат значения из функции (https://javascript.ru/forum/misc/51731-vozvrat-znacheniya-iz-funkcii.html)

eniacty 17.11.2014 16:10

Возврат значения из функции
 
Есть такая функция:

var getLastUpdData = function() {
      var data = 1;
      $http.get('data/lastUpd').success(function(data) {
              return data
            })
      return data
      };

Возвращается конечно var data = 1. Как вернуть другую, полученную в get запросе?

Octane 17.11.2014 16:19

Никак. Загрузка данных – асинхронная операция, поэтому все последующие действия должна спровоцировать функция, переданная в success, она же может передать data другим функциям.

eniacty 17.11.2014 16:29

Поясню почему спрашиваю.

Я делаю методы апи. Хочется сделать так:

var APIMethods = function() {

  var getLastUpdData = function() {
        $http.get('data/lastUpd').success(function(data) {
              return data
            })
        };

  return {
        getData  : getLastUpdData()
  }

}


Как бы вы реализовали подобное?

ruslan_mart 17.11.2014 16:40

eniacty, ну Вы сами подумаете, будет ли производительно, если выполнение скрипта будет приостанавливаться, пока не получим ответ?

Aetae 17.11.2014 16:50

В реальности - только колбэк. Остановка обработки до получения результата - в js останавливает всё.
В es6 можно поизвращаться с yield и генераторами.(работать будет только в фф и вроде как в самых последних chrome)
В es7 уже что-то такое будет.


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