昨天我发布了这个问题:https://stackoverflow.com/questions/25919099/how-do-i-use-callback-to-solve-authentication-issue
基本上我想等待我的登录请求的响应,然后转到Checkin请求。否则,签入请求会给出401认证错误。
现在我正在尝试使用某些库,如step,wait.for或async来等待响应。使用async.series我正在尝试使用此代码,但它在unexpected token function
function two()
错误
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);
});
)];
}
}
}
// });
}
答案 0 :(得分:1)
您正在收到意外的令牌错误,因为您正在尝试在带括号的表达式中定义多个函数。在你的控制台中尝试这一行:
(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() {...} ] );
您的更新代码可能如下fiddle。