gpt4 book ai didi

javascript - AngularJS 服务函数不返回 promise

转载 作者:行者123 更新时间:2023-12-03 09:27:04 24 4
gpt4 key购买 nike

我对 Angular 还很陌生,所以如果你们需要更多信息,请告诉我,我会将其添加到此处。

我有一个 Controller ,它对服务进行函数调用,该服务应该返回由 HTTP.get 函数检索的一些数据。然而目前它似乎没有返回任何数据或 promise 。

这是调用和处理来自服务的数据的 Controller 代码

var onRecentBlogPosts = function(data) {
$scope.recentBlogPosts = data;
$log.info($scope.recentBlogPosts);
$log.info(JSON.stringify($scope.recentBlogPosts));
}

var onError = function(response) {
$('.error-container').html("<div class='messages error'>Could not fetch the data. <br /><br />More information: <br />"+response+"</div>");
}

$q.when(backend.getRecentPosts).then(onRecentBlogPosts, onError);

我也尝试过

backend.getRecentPosts.then(onRecentBlogPosts, onError);
//but then I get the error
TypeError: backend.getRecentProjects.then is not a function

被调用的服务“后端”函数是 getRecentPosts

服务代码:

(function() {
var backend = function($http, $q) {
var getRecentPosts = function() {
return $http.get("http://example.com/blog")
.then(function(response) {
return response.data;
});
};

return {
getRecentPosts: getRecentPosts
};
};


var module = angular.module("moduleName");
module.factory("backend", backend);

}());

当我查看控制台时(在成功函数中执行的行执行之后)我得到

function getRecentPosts()
undefined

这里的目标是将所有与 http 相关的函数放入服务中,然后从不同的 Controller 调用它。我不确定我是否应该收到 promise 或从 http 调用返回的数据或两者的组合。

所以我的大局问题是:我如何对我的服务和服务功能进行编码,以便我可以从不同的 Controller 调用它们并接收 promise /数据?

最佳答案

backend.getRecentPosts().then(onRecentBlogPosts, onError);

您忘记调用该函数。也不需要在工厂内有然后

var getRecentPosts = function() {
return $http.get("http://example.com/blog")
};

关于javascript - AngularJS 服务函数不返回 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31641082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com