如何使用async.series等待响应?
问题描述:
我昨天发布了这个问题:https://stackoverflow.com/questions/25919099/how-do-i-use-callback-to-solve-authentication-issue如何使用async.series等待响应?
基本上我想等待我的登录请求的响应,然后去签入请求。否则签入请求会给出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);
});
)];
}
}
}
// });
}
答
,因为你想一个括号表达式中定义多个功能你得到一个意外标记错误。试试这条线在控制台:
(function one() {} function two() {})
这是怎么回事是你想访问async.series就像它是一个数组或东西:
async.series[ ...index here... ]
然后,对于指数,你”再传递的表达式:
async.series[ (...) ];
表达谬误包含两个功能的定义:
async.series[ (function one() { ... } function two() { ... }) ]
带括号的表达式只能返回一个值。两个函数将竞争作为返回值,因此是无效的。但是你所做的一切都是错误的。
我认为你真正的意思是叫async.series
,并传递的functions
的array
...
async.series([ function one() {...}, function two() {...} ]);
你更新的代码可能看起来像这样fiddle。
首先检查文档[async.series](https://github.com/caolan/async#seriestasks-callback) – Ravi 2014-09-19 06:49:44