찾다

 >  Q&A  >  본문

异步请求等待问题

现有多条数据需要一条一条的发回服务端,目前的做法是在数组里循环,异步发回服务端。最近需求更改了,要求发回去一条之后,拿到成功信息之后再发送第二条。这样循环嵌套异步就不好实现了,如果数据多了可能会更加麻烦。前台使用angularjs,求大手给个思路。

高洛峰高洛峰2936일 전598

모든 응답(2)나는 대답할 것이다

  • 欧阳克

    欧阳克2016-11-12 11:40:01

    用promise,AngularJS的话用$q

    회신하다
    0
  • 三叔

    三叔2016-11-12 11:39:49

        function ajax(name, cb){
            console.log('request:'+name);
            setTimeout(function(){
                console.log('response:'+name);
                cb && cb();
            }, Math.random()*3000);
        }
    
        function request(name){
            return function(cb){
                return function(){
                    ajax(name, cb);
                }
            }
        }
    
        var httpArr = [];
    
        for(var i = 0; i < 5; i++){
            httpArr.push(request(i));
        }
    
        httpArr.reduce(function(a, b){
            return b(a);
        })();
        
        // 输出
        /*
        request:4
        response:4
        request:3
        response:3
        request:2
        response:2
        request:1
        response:1
        */


    회신하다
    0
  • 취소회신하다