需要按顺序执行 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这个顺序执行
求指导
相关分类