Я знаю, что такие вопросы были заданы раньше с помощью Angular, к сожалению, я не могу получить ни одно из этих решений для работы с моей конкретной реализацией, поэтому я прошу здесь.Угловая асинхронная функция Возвращаемое значение к переменной
У меня есть функция scope.getOrders()
здесь:
$scope.lastOrderFetch,$scope.orders;
$scope.getOrders = function(){
if(moment().diff(moment($scope.lastOrderFetch))>5000||$scope.lastOrderFetch==null){
$http({
method: 'GET',
url: 'http://www.example.com/getOrders',
}).then(function successCallback(html) {
$scope.orders = html.data;
$scope.lastOrderFetch = new Date();
return html.data;
});
}
else{
return $scope.orders;
}
};
Я просто хочу заказы от внутреннего интерфейса к popuplate переменной здесь:
var orders = $scope.getOrders();
, который находится в другой функции. Я понимаю, что моя проблема: orders
всегда неопределен, потому что он пытается назначить ему, а $http
все еще работает, это волшебство, и оно асинхронно, поэтому данные $http
недоступны сразу.
Я также собираюсь использовать сервис, а затем обещание или что-то в этом роде, но моя проблема заключается в том, что $ http должен срабатывать только на основе условного в контроллере. Также множество решений сочетают обратные вызовы и обещания, поэтому я не уверен, что делать здесь. Кроме того, не $ http сама возвращает обещание? Я не уверен, что мне нужен сервис, поэтому я публикую здесь, чтобы посмотреть, как я это сделаю.
Любая помощь будет оценена по достоинству.
Вы пытаетесь использовать функцию возврата ключевого слова вне функции. – Todd
ой, если только вы не пропустили его при копировании/вставке – Todd
Я думаю, что возвращаюсь внутрь функции ... –