2014-09-19 83 views
0

我昨天发布了这个问题: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); 
           }); 
         )]; 
       } 
      } 
     } 
     // }); 
} 
+1

首先检查文档[async.series](https://github.com/caolan/async#seriestasks-callback) – Ravi 2014-09-19 06:49:44

回答

1

,因为你想一个括号表达式中定义多个功能你得到一个意外标记错误。试试这条线在控制台:

(function one() {} function two() {}) 

这是怎么回事是你想访问async.series就像它是一个数组或东西:

async.series[ ...index here... ] 

然后,对于指数,你”再传递的表达式:

async.series[ (...) ]; 

表达谬误包含两个功能的定义:

async.series[ (function one() { ... } function two() { ... }) ] 

带括号的表达式只能返回一个值。两个函数将竞争作为返回值,因此是无效的。但是你所做的一切都是错误的。

我认为你真正的意思是叫async.series,并传递的functionsarray ...

async.series([ function one() {...}, function two() {...} ]); 

你更新的代码可能看起来像这样fiddle