[英]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.