连续多个ajax请求,这段代码的promise哪里写错了?

function testPromise() {
    var p1 = new Promise(
        function(resolve, reject) {
            (function() {
                for(var i=0;i<4;i++){
                    getExpert(i);
                };
                resolve();        
            })();                
        }
    );

    p1.then(
        function() {
            //slideScroll();
            alert(1);
    });
}

testPromise();

for循环里的getExpert(i)是连着发了四个ajax请求,我想让最后一个请求发完后,执行p1.then()里的alert(1);
现在第一个请求还在发着,就已经alert了……
要怎么改?

阅读 4.5k
2 个回答

首先你的resolve()应该在ajax请求的回调方法中,再者你是想多个ajax发完做出动作,那还是用promise.all吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题