猿问

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

需要按顺序执行 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这个顺序执行

求指导


慕勒3428872
浏览 1441回答 3
3回答
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答