我最近公布的我面对这个问题的详细说明,这里的SO。由于我无法发送实际的$http
请求,因此我使用了超时来模拟异步行为。在@Gloopy的帮助下,从模型到视图的数据绑定工作正常
现在,当我使用$http
而不是$timeout
(在本地测试)时,我可以看到异步请求成功,并且data
在我的服务中充满了json响应。但是,我的看法没有更新。
在这里更新了Plunkr
这是一个可以满足您需求的Plunk:http
://plnkr.co/edit/TTlbSv?p=preview
这个想法是您直接使用promise和它们的“ then”功能来操纵和访问异步返回的响应。
app.factory('myService', function($http) {
var myService = {
async: function() {
// $http returns a promise, which has a then function, which also returns a promise
var promise = $http.get('test.json').then(function (response) {
// The then function here is an opportunity to modify the response
console.log(response);
// The return value gets picked up by the then in the controller.
return response.data;
});
// Return the promise to the controller
return promise;
}
};
return myService;
});
app.controller('MainCtrl', function( myService,$scope) {
// Call the async method and then do stuff with what is returned inside our own then function
myService.async().then(function(d) {
$scope.data = d;
});
});
这是一个稍稍复杂的版本,用于缓存请求,因此您只能第一次进行请求(http://plnkr.co/edit/2yH1F4IMZlMS8QsV9rHv?p=preview):
app.factory('myService', function($http) {
var promise;
var myService = {
async: function() {
if ( !promise ) {
// $http returns a promise, which has a then function, which also returns a promise
promise = $http.get('test.json').then(function (response) {
// The then function here is an opportunity to modify the response
console.log(response);
// The return value gets picked up by the then in the controller.
return response.data;
});
}
// Return the promise to the controller
return promise;
}
};
return myService;
});
app.controller('MainCtrl', function( myService,$scope) {
$scope.clearData = function() {
$scope.data = {};
};
$scope.getData = function() {
// Call the async method and then do stuff with what is returned inside our own then function
myService.async().then(function(d) {
$scope.data = d;
});
};
});
问题内容: 我最近公布的我面对这个问题的详细说明,这里的SO。由于我无法发送实际的请求,因此我使用了超时来模拟异步行为。在@Gloopy的帮助下,从模型到视图的数据绑定工作正常 现在,当我使用而不是(在本地测试)时,我可以看到异步请求成功,并且在我的服务中充满了json响应。但是,我的看法没有更新。 问题答案: 这个想法是您直接使用promise及其promise,然后使用它们的“ then”函数
在浏览器发送 Ajax 请求之后,下一步骤自然是服务器响应。服务器在接收到请求之后会进行一系列处理步骤,最终返回结果。而与此同时,客户端会在接收到返回的结果之后进行界面的展示或者数据的处理。 本章节主讲 Ajax 收到返回数据后处理服务器响应过程。 前言 本章节将会从两个方面来讲解 Ajax 如何处理服务端响应,它们分别是: 处理的时机 处理的方法 如果你不知道 Ajax 是如何获取服务端响应内容
我是web服务新手,正在阅读Martin Kalin的《Java Webservices》一书。我已经了解了它最初的基本概念,有一个问题: 假设将HTTP请求(包含SOAP消息信封)发送到JavaWeb服务()。该请求是否由Servlet内部处理,Servlet提取SOAP消息并将其转换为相应Java域对象,然后调用服务实现bean? 无论Metro和Axis等现成框架如何,这个问题都是通用的。只
我希望能够创建一个自定义的AngularJS服务,当其数据对象为空时发出HTTP“GET”请求,并在成功时填充数据对象。 下一次调用此服务时,我希望绕过再次发出HTTP请求的开销,而是返回缓存的数据对象。 这可能吗?
我有一个场景,当一个对象被两个不同的线程更新。下面是grails服务类中的代码。我能够捕捉StaleObject异常,但当我试图从数据库中再次获取它并重试保存值时,它不起作用。 为什么上面的代码不更新/保存catch块中的值?我也试过了。get(id)方法从数据库中获取最新的,但它不起作用。 但当我尝试此操作时,它会更新最新的计时器值: 在控制器中:- 在职: 如果在控制器/服务中抛出和处理它,则
我在我的项目中使用微服务架构。对于服务间通信,我使用消息队列NATS。我写了一个网关,处理所有超文本传输协议请求,并将其放入队列。所有终端服务都订阅到这个队列。 在endpoint服务中,我使用基于Netty IO的Xitrum。当我从队列中得到请求时,我将其反序列化为FullHttpRequest。但我不知道如何将它发送到我的netty服务器,它可以根据业务逻辑处理它(例如,不使用可以将它发送到