2014-10-12 57 views
0

在正確的時間得到結果我是新的node.js,我跟着一些教程。在節點

我不知道如何獲取數組「結果」只有在函數結束時調用。

app.get('/api/email/check/:email',function (request,response){ 
    var email = request.params['email']; 
    var result = Array(); 
    for (var i = 0; i < 2; i++) { 
     existence.check(email, function(err,res){ 
      result[i]=res; console.log({"Result":res}); 
     }); 

    }; 
    response.send(result); // Problem is that i get: [] 
}); 

我得到了日誌,但結果是一個空數組,因爲它在函數結束之前調用。有沒有一種很好的方法來解決這個問題?不計算「我」。

+0

你爲什麼連續兩次使用完全相同的參數調用'exists.check()'? – jfriend00 2014-10-12 09:00:02

回答

0

你可以把

response.send(結果);

out of for循環。

因爲response.send()是for循環結束之前的異步方法,所以響應已經結束。

+0

是我的錯。我更新了該主題的代碼。但它是相同的結果,空陣列:( – 2014-10-12 07:38:57

+0

然後where is the exists.check方法?您需要檢查它是否是異步方法。 – 2014-10-12 07:52:07

+0

是的它是異步的。它是一個依賴項:「電子郵件存在」:「0。 x「 – 2014-10-12 07:58:06