【发布时间】:2019-05-31 17:02:57
【问题描述】:
conn.connect(function (err) {
if (err) throw err;
var prizeCode = generatePrizeCode();// this method return a 5-digit code
var query = "SELECT * FROM user WHERE code = ? ";
var values = [[prizeCode]];
conn.query(query, [values], function (err, result) {
if (err) throw err;
// Here I want to re-execute the above query if the result is not empty
});
});
在上面的代码中,只要结果包含数据,我就想执行查询。但是我不能像下面的伪代码那样使用循环,
// if the result is empty, the generated code does not exist in database. So it can be used.
while(result.length != 0){
var result = conn.query("SELECT * FROM user WHERE code = abc");
}
我怎样才能做到这一点?
【问题讨论】:
-
您想实现什么?如果有任何即将到来,您想重试,或者您想将相同的代码运行到不定数量?
-
@AnoopMc 我想重复执行查询,只要查询结果包含数据(一行或多行)。
-
您可以创建一个方法,该方法会一直尝试直到结果出现。所以如果有任何错误,基本上ti会再次调用该方法。为避免无限循环,您可以使用计数器的最大重试次数。
-
@AnoopMc 请您详细说明或提供示例链接?
-
当然,已在答案中添加了代码 sn-p。请修改使用。
标签: javascript mysql node.js database node-mysql