关于promise里 superagent 调用的问题

chenchenchen
  • 12

使用 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 呢

求大神指导

回复
阅读 4.6k
1 个回答

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

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