我试图了解 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 调用中获取数据,我想立即从函数中返回已解决的承诺?