Возврат значения из функции
Есть такая функция:
var getLastUpdData = function() { var data = 1; $http.get('data/lastUpd').success(function(data) { return data }) return data }; Возвращается конечно var data = 1. Как вернуть другую, полученную в get запросе? |
Никак. Загрузка данных – асинхронная операция, поэтому все последующие действия должна спровоцировать функция, переданная в success, она же может передать data другим функциям.
|
Поясню почему спрашиваю.
Я делаю методы апи. Хочется сделать так: var APIMethods = function() { var getLastUpdData = function() { $http.get('data/lastUpd').success(function(data) { return data }) }; return { getData : getLastUpdData() } } Как бы вы реализовали подобное? |
eniacty, ну Вы сами подумаете, будет ли производительно, если выполнение скрипта будет приостанавливаться, пока не получим ответ?
|
В реальности - только колбэк. Остановка обработки до получения результата - в js останавливает всё.
В es6 можно поизвращаться с yield и генераторами.(работать будет только в фф и вроде как в самых последних chrome) В es7 уже что-то такое будет. |
Часовой пояс GMT +3, время: 13:22. |