Я пытаюсь обойти promises в JavaScript (в частности, AngularJS).
У меня есть функция в службе, позвоните ей fooService
, которая проверяет, загружены ли мы некоторые данные. Если он есть, я просто хочу, чтобы он вернулся, а если нет, нам нужно загрузить данные и вернуть обещание:
this.update = function(data_loaded) {
if (data_loaded) return; // We've loaded the data, no need to update
var promise = Restangular.all('someBase').customGet('foo/bar').then(function(data) {
// Do something with the data here
}
return promise;
}
У меня есть другая функция, которая затем вызывает update
функцию fooService
следующим образом:
fooService.update(data_loaded).then(function() {
// Do something here when update is finished
})
Моя проблема в том, что если нам не нужно загружать данные в функцию update
, обещание не возвращается, поэтому .then()
не вызывается в моей другой функции. Каким должен быть подход? В принципе, я хочу немедленно вернуть разрешенное обещание из функции update()
, если нам не нужно получать данные из вызова Restangular?