Помогите пожалуйста улучшить скрипт.
Есть json-файл. Я подгружаю его и мне нужно точно определить момент когда данные пришли. Вот пример кода. Его слабая сторона в том, что проверка:
if($scope.news) {
console.log('OK');
} else {
console.log('NOTOK');
};
выводит в консоль не верную информацию("NOTOK") в то время как данные успешно получены.
для решения проблемы я пробовал обернуть этот код в $timeout (в том же примере соответствующие строки закомментированы).
Но это плохая практика потому что я поставил интервал 1000ms, а при получении json-файла (например с сервера) может случиться задержка и этот интервал будет превышен.
С другой стороны, если с сервера json-файл будет получен быстрее чем за 1000ms, то пользователь будет лишнее время смотреть в экран, на котором ничего не происходит
В общем помогите пожалуйста переписать код по человечески
Привожу полный код:
var app = angular.module('plunker', []);
app.controller('MainCtrl', ['$rootScope', '$scope', '$timeout', '$http',
function($rootScope, $scope, $timeout, $http) {
$scope.getNews = function() {
$http.get('news.json')
.then(function successCallback(resp){
console.log('success', resp);
console.log('data', resp.data);
console.log('status', resp.status);
console.log('statusText', resp.statusText);
$scope.news = resp.data.values;
}, function errorCallback(resp) {
console.log('error', resp);
console.log('data', resp.data);
console.log('status', resp.status);
console.log('statusText', resp.statusText);
});
};
$scope.getNews();
//$timeout(function() {
if($scope.news) {
console.log('OK');
} else {
console.log('NOTOK');
};
//}, 1000);
}]);