angualrjs,$http异步操作执行完再执行下一步该怎么写

发布于 2022-09-03 12:30:07 字数 271 浏览 22 评论 0

有三个步骤
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应该怎么写

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

萌化 2022-09-10 12:30:07

使用事件。不要用嵌套

$scope.$on('step1success',function(){
    //步骤二代码
//执行完成后在回调函数中触发
    $scope.$emit('step2success');
});
$scope.$on('step2success',function(){
    //步骤3代码
//执行完成后在回调函数中触发
    $scope.$emit('step3success');
});
$scope.$on('step3success',function(){
    //全部执行完成
});

//步骤一代码
//执行完成后在回调函数中触发
$scope.$emit('step1success');
╰つ倒转 2022-09-10 12:30:07

使用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对象
恍梦境° 2022-09-10 12:30:07

楼主可以学习一下 $q 与 promise 对象。就如楼上所示,Angular有一个 $q.all(),你正可以用上。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文