84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
有三个步骤step1:$http.jsonp(url1)step2:$http.jsonp(url2)step3:赋值操作 ,步骤1、2没有顺序要求,步骤3要求在1、2步骤完成后执行;
因为步骤1、2会多处被调用,不希望是
步骤1.success{ 步骤2.success{ 步骤3}} 这样的写法
希望将步骤1、2封装成一个公共方法,再执行步骤3,顺序执行,angularjs应该怎么写
光阴似箭催人老,日月如移越少年。
使用事件。不要用嵌套
$scope.$on('step1success',function(){ //步骤二代码 //执行完成后在回调函数中触发 $scope.$emit('step2success'); }); $scope.$on('step2success',function(){ //步骤3代码 //执行完成后在回调函数中触发 $scope.$emit('step3success'); }); $scope.$on('step3success',function(){ //全部执行完成 }); //步骤一代码 //执行完成后在回调函数中触发 $scope.$emit('step1success');
使用ng自带的$q服务
let promises = { alpha: promiseAlpha(), beta: promiseBeta(), gamma: promiseGamma() } $q.all(promises).then((values) => { console.log(values.alpha); // value alpha console.log(values.beta); // value beta console.log(values.gamma); // value gamma complete(); }); // promises包含多个promise对象,当所有promise对象成功返回时,$q.all().then()中的成功方法才会被执行。 // $http返回的正是promise对象
楼主可以学习一下 $q 与 promise 对象。就如楼上所示,Angular有一个 $q.all(),你正可以用上。
使用事件。不要用嵌套
使用ng自带的$q服务
楼主可以学习一下 $q 与 promise 对象。就如楼上所示,Angular有一个 $q.all(),你正可以用上。