关于promise里 superagent 调用的问题

发布于 2022-09-06 05:21:06 字数 1129 浏览 40 评论 0

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

求大神指导

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

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

发布评论

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

评论(1

垂暮老矣 2022-09-13 05:21:06

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

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