节点mysql检查和更新foreach循环

时间:2015-03-10 15:44:13

标签: mysql node.js

我有一个foreach循环,我连接到mysql数据库,从表中选择一个唯一的值" A"返回该值,然后插入并更新表中的行" A"基于该值是否存在。我遇到的问题是,似乎节点JS / javascript的异步特性意味着当我循环回来再看一下表#34; A"对于该值,它有时不存在,因为前一个循环没有及时执行插入。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

因为在你的情况下你需要先前的db查询在下一个之前完成,你将不得不停止使用forEach循环而是使用递归函数。

var testArr = ['a', 'b', 'c'];

function doWork (i) {
    if (i === testArr.length) return;
    db.doQuery('foobar with ' + testArr[i] + '...', function () {
        doWork(i++);
    });
}
doWork(0);