Ich benutze Node JS, um eine Anfrage an eine Datenbank zu stellen. Es passiert, dass ich eine SELECT-Anweisung mache und ich brauche danach ein INSERT.Schleife synchron in Knoten JS
var index = 1;
async.whilst(
function() { return index < 10; },
function(callback) {
index++;
let line = csv_json[index][0].split(';');
let block = csv_json[index];
read_account(line);
callback(null, index);
},
function(err, n) {
if (err) throw err;
}
);
function read_account(csv, index) {
if (index == csv_json.length) return;
let line = csv_json[index][0].split(';');
let block = csv_json[index];
var account = line[0];
waterfall([
function(callback) {
connection.query('SELECT id FROM account WHERE account_number = ' + account,
function(error, results, fields) {
if (error)
throw error;
console.log(results);
callback(null, results);
});
},
function(results, callback) {
if (results == null || typeof results == undefined || results.length == 0) {
console.log("ENTREI");
connection.query('INSERT INTO account (account_number) VALUES (' + account + ')',
function(err, results, fields) {
callback(err, "1 account inserted!")
if (err)
throw err;
});
}
//else callback(null,"record already in db")
},
], function(err, success) {
if (err) throw err;
//console.log(success);
});
};
Da Knoten asynchron ist, die Ergebnisse Ich bin von der INSERT bekommen werden immer aus dem ersten Zustand der Datenbank, wenn ich lese-Konto() aufrufen Wie kann ich diesen Prozess synchron zu machen?
Danke
JS asynchron ist, aber was Sie suchen ist eine Callback-Funktion Ihre Ergebnisse mit. –
Ich weiß, es ist asynchron. Ich brauche nur die Funktion, die read_account aufruft, um synchron zu sein. –