本来我service中带代码是这样的:
var url = 'xxx';
return $http(url,params);
然后controller这样处理就行了:
xxxService.get().success(function(data){
$scope.list = data.list;
});
然后现在后端给的数据不好,想要在service中提前处理数据然后controller拿到的直接就是处理好的数据
var url = 'xxx';
return $http(url,params).success(function(data){
data.addAttr = '添加的属性';
});
然后controller中
xxxService.get().success(function(data){
$scope.list = data.list;
console.log(data.addAttr);
});
现在的处理方式好像没什么问题,数据都会先走service的success然后再走controller的success,我就以为他是同步处理的了,但是我在service中的success添加了几个循环就导致这几个循环没有执行完,我这种写法有问题吗?
假如我想要在service中处理data,然后在controller中在处理处理过的data,是不是要用promise chain?一般怎么用呢?
我现在的写法没问题,问题出在其他地方出错导致代码中断。$http本身就是返回的封装过的promise,所以上面假如我在service先处理数据,angular就会自动构造promise chain,形成预处理的效果,谢谢大家!
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
人生最曼妙的风景,竟是内心的淡定与从容!