为了账号安全,请及时绑定邮箱和手机立即绑定

关于promise ajax 使用then顺序执行的问题

关于promise ajax 使用then顺序执行的问题

慕勒3428872 2019-03-07 13:15:26
需要按顺序执行 ajax请求,之前请求到的数据需要传给下一个函数,一共需要走五步,使用resolve(xxx)来传到下一个 promise里,但是到了第3步就开始报错了,求大神指导这个是在node环境下测试的var superagent = require('superagent')var p1 = function (path) {    return new Promise(function (resolve, reject) {        superagent.get(path).end(function (err, res) {            if (err) {                console.log('err1')            } else {                if (res.status == 200) {                    console.log('step1')                    resolve(path);                }            }        })    });}var p2 = function (path) {    return new Promise(function (resolve, reject) {        superagent.get(path).end(function (err, res) {            if (err) {                console.log('err2')            } else {                if (res.status == 200) {                    console.log('step2')                    resolve(path)                }            }        })    });}var p3 = function (path) {    return new Promise(function (resolve, reject) {        superagent.get(path).end(function (err, res) {                        if (err) {                console.log('err3')            } else {                if (res.status == 200) {                    console.log('step3')                    resolve()                }            }        })    });}var p4 = function (path) {    return new Promise(function (resolve, reject) {        superagent.get(path).end(function (err, res) {                        if (err) {                console.log('err4')            } else {                if (res.status == 200) {                    console.log('step4')                    resolve()                }            }        })    });}p1("http://www.baidu.com").then(function (val) {p2(val)}).then(function (val) {p3(val)}).then(function (val) {p4(val)})打印结果:step1报错报错step2发现第二步开始值就没有传到第三步里,并且也没有按 step1---》step4这个顺序执行求指导
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 1440 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信