【发布时间】:2015-09-12 11:58:36
【问题描述】:
我在一个项目中使用 node.js,我的代码中有这种特定的结构,这会导致问题。我有一个包含 106 个项目的连续日期数组 dateArr。我有一个数组resultArr 来保存结果数据。我的代码结构是这样的:
function grabData(value, index, dateArr) {
cassandra client execute query with value from dateArr {
if (!err) {
if (result has more than 0 rows) {
process the query data
push to resultArr
}
if (result is empty) {
push empty set to resultArr
}
}
}
}
dateArr.forEach(grabData);
我在每次迭代后记录了resultArr 的大小,似乎在某些迭代中没有任何东西被推送到resultArr。由于dateArr 和resultArr 之间的 I/O 结构是 1 比 1,所以应该存储 106 个项目时,代码仅在 resultArr 中存储了 66 个项目。
【问题讨论】:
-
用伪代码很难分辨
-
我很确定
cassandra client execute query with value from dateArr是异步的。 -
由于公司保密协议,无法提供真实代码,抱歉
标签: javascript arrays node.js serverside-javascript