2014-10-12 30 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