0
所以我需要以某种方式使我的for循环在我的“readDataBase”函数完成之前verifyDataInFile执行。我正在写节点js,并从MySQL数据库获取数据。 我没有任何提供任何“睡眠”功能的软件包的运气,setTimeOut也不起作用,回调对我没有任何意义。如何阻止我的代码异步运行?
任何帮助将不胜感激。
'use strict';
var mysql = require('mysql');
var fs = require('fs');
var wstream = fs.createWriteStream('Desktop\myOutput.txt');.
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "1234"
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
readDataBase();
verifyDataInFile();
});
var readDataBase = function()
{
con.query("SELECT * FROM demo.users", function (err, rows, fields)
{
if (err) {
return;
} else {
for (var i = 0; i < rows.length; i++)
{
wstream.write(rows[i].id + " " + rows[i].firstName + " " + rows[i].lastName + " " + rows[i].email + "\n" + "\n");
}
}
});
}
var verifyDataInFile = function()
{
fs.readFile('Desktop\myOutput.txt', function (err, fs) {
if (err) throw err;
if (fs.indexOf('[email protected]') >= 0) {
console.log("something is here");
} else {
console.log("nope");
}
})
}
一个愚蠢的想法,但在最糟糕的情况下,请在最后调用verifydatainfile,但在readdatabase函数中调用verifydatainfile。 – koksalb
没有帮助:/同样的问题。我需要在for循环以某种方式执行时停止运行程序。 – Linexxlol
我知道如何js可以用这些东西棘手。我从来没有设法找到一个像这样的可靠解决方案。但这里有另一个愚蠢的想法,让全球布尔成为真实的,并且确实是无所作为,那么当你的阅读完成时,使它成为假的以绕过已经运行的时间来进行。 – koksalb