[英]How to use async.series to wait for response?
我昨天发布了这个问题: https : //stackoverflow.com/questions/25919099/how-do-i-use-callback-to-solve-authentication-issue
基本上,我想等待登录请求的响应,然后转到“签入”请求。 否则,签入请求将给出401,这是身份验证错误。
现在,我正在尝试使用诸如step,wait.for或async之类的库来等待响应。 使用async.series我正在尝试这段代码,但是它在function two()
给出了unexpected token function
错误
function checkin() {
async.series[(
function one() {
agent1
.post(login-url)
.type('form') // send request in form format
.send({
username: username,
password: password
})
.end(function(err, res) {
console.log("response for login is ", res.statusCode, " ", res.message);
});
}
function two() {
for (var i = 0; i < count; i++) {
if (validatePayment(rows[i].Payment) == true && validateMobile(rows[i].Mobile) == true) {
console.log("inside validation");
agent1
.post(checkin-url)
.send({
phone: rows[0].Mobile,
outlet: outletID
//outlet: "rishi84902bc583c21000004"
})
.end(function(err, res) {
console.log("response for checkins is ", res.statusCode, " ", res.message);
});
)];
}
}
}
// });
}
由于尝试在带括号的表达式中定义多个函数,因此出现了意外的令牌错误。 在控制台中尝试以下行:
(function one() {} function two() {})
这是怎么回事,您正在尝试访问async.series,就像它是一个数组之类的东西:
async.series[ ...index here... ]
然后,对于索引,您要传递一个表达式:
async.series[ (...) ];
表达式错误地包含两个函数定义:
async.series[ ( function one() { ... } function two() { ... } ) ]
带括号的表达式只能返回一个值。 两个函数将争夺返回值,因此无效。 但是首先,您所做的一切都是错误的。
我认为您真正的意思是调用async.series
并传递array
functions
...
async.series( [ function one() {...}, function two() {...} ] );
更新后的代码可能是这样的小提琴 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.