我正在努力了解 JavaScript(尤其是 AngularJS)中的 promises。
我在服务中有一个函数,我们称它为 fooService
,它检查我们是否加载了一些数据。如果有,我只想让它返回,如果没有,我们需要加载数据并返回一个 promise :
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;
}
我有另一个函数,然后调用 fooService
的 update
函数,如下所示:
fooService.update(data_loaded).then(function() {
// Do something here when update is finished
})
我的问题是,如果我们不需要在 update
函数中加载数据,则不会返回 promise,因此 .then()
在我的其他函数中没有被调用。这里的方法应该是什么 - 基本上,如果我们不需要从 Restangular 调用中获取数据,我想立即从 update()
函数返回一个已解决的 promise ?
最佳答案
由于您的 promise 使用与原生 JavaScript 相同的语法,您可以使用并返回一个已解析的 JavaScript promise :Promise.resolve()
return(Promise.resolve("MyReturnValue"));
关于javascript - 使用 AngularJS 立即返回已解决的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24794434/