关于promise里 superagent 调用的问题

使用 promise 的时候 ,我想要 等 superagent 返回结果后再执行then函数,
代码简化成如下

var superagent=require('superagent')
var p1=function(a,b){
    console.log(a+b)
  return new Promise(function(resolve, reject) {
      console.log('p1')
      superagent.get('http://www.baidu.com').end(function(err,res){
      
        if(err){
            console.log('err1')
        
        }else {
            if(res.status==200){

                console.log('sup1')
                resolve(1);
            }
        }
    })
      

    });
}
var p2=function(c,d){
  console.log(c+d)
  return new Promise(function(resolve, reject) {
      console.log('p2')
      superagent.get('http://www.baidu.com').end(function(err,res){
      
        if(err){
            console.log('err2')
        
        }else {
            if(res.status==200){

                console.log('sup2')
                resolve(1);
            }
        }
    })
    });
}
p1(1,2).then(p2(10,20)) 

期望输出结果:
3
p1
sup1
30
p2
sup2

而实际输出结果是:
3
p1
30
p2
sup1
sup2

怎么样才能让函数按顺序执行 ,执行完p1函数后再执行p2 呢

求大神指导

阅读 2.5k
评论 2017-11-22 提问
    1 个回答

    最后一句改成p1(1,2).then(function(){p2(10,20)})

    评论 赞赏 2017-11-22
      撰写回答

      登录后参与交流、获取后续更新提醒