nodejs内部循环的承诺并未按预期工作

时间:2015-07-23 12:04:52

标签: node.js promise

我有一系列事件,对于每个值,可能会/可能不会查询fires来获取数据。

["write","write","write","write"]

在上面的代码中,我能够将第一组数据(postgresql)推送到read数据库,而不是第二组(["写",&# 34;写""读""写"])。每当我在一组中得到postgresql事件时,我就会得到空物体。会出现什么问题?对于上面的示例,我应该在insertIntoPostgreSQL()中有8条记录,但我只看到第一个数组的四条数据。

更多信息: console.log("sql result:"result); deferred.resolve({time:result.time}); 函数将获取对象列表并将每个对象插入数据库。这项操作很好。

我尝试使用两个控制台stmt作为

console.log("Before Insert:"JSON.stringigy(resultArray));
q.all(resultArray).then(function(finalResul‌​t){ 

My_Column
XXXOABBOABBBBOABBBOABBBOABBBOABBBOOABUXXX

我按以下顺序得到结果。

  

插入之前:[{"来源":{}},{"来源":{}},{"来源":{}},{ "源":{}}]

     

插入前:[{}]

     

sql result:{time:" 2015-07-10 00:00:00"}

1 个答案:

答案 0 :(得分:1)

正如评论中提到的Roamer-1888,肯定会为您的Q.all添加错误处理程序。你的承诺的基本结构似乎很好,错误在其他地方。

您的result回调中的sql.query似乎与您的预期完全不同,因为它被视为undefined。由于存在错误,Q.all没有得到解决,因此没有任何内容被添加到您的数据库中。