javascript - 使用 AngularJS 立即返回已解决的 promise

标签 javascript angularjs promise restangular angular-promise

我正在努力了解 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;
}

我有另一个函数,然后调用 fooServiceupdate 函数,如下所示:

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/

相关文章:

javascript - 如何从 HTML 滑动条获取元素到 JavaScript 变量

javascript - 目前是否有将两个或多个字符串文字类型连接到 TypeScript 中的单个字符串文字类型?

javascript - 在 Angular 中将 attrs 作为 $scope 变量传递

javascript - 为什么这个 promise 会悄然落空?

javascript - 从 API 获取分页的项目列表

javascript - 避免 * 来自 css 样式

javascript - 如何在用户使用 jQuery 单击时在特定 li 上添加事件类

javascript - 为什么 float 权利不起作用也很重要?

javascript - 在angularjs中将数据从前端插入mysql db

javascript - Promise .then() 链 : second . 然后在第一个之前运行? 0.0