我将插入和更新代码保存在 2 个不同的文件中,并且根据条件始终插入应该先执行然后更新。但不知何故先执行更新然后插入
test.js:简化代码
var pg = require('pg');
var uuid = require('node-uuid').v4;
var id = uuid().toString();
var conString = 'postgres://postgres:pass@127.0.0.1:5432/testdb';
// ------INSERT
pg.connect(conString, function(err, client, done) {
console.log('Executing Insert query');
client.query('insert into testdb (id,data,iscancelled) values ($1,$2,$3)',[id,'hello','no'], function(err, result) {
done();
if(err) { return console.error('error running query', err); }
console.log('finished executing Insert query');
});
});
// ------UPDATE
pg.connect(conString, function(err, client, done) {
console.log('Executing update query');
client.query("update testdb set iscancelled = 'yes' where id = $1",[id], function(err, result) {
done();
if(err) { return console.error('error running query', err); }
console.log('finished executing Update query');
});
});
输出
tom@tom:~$node test.js
Executing Insert query
Executing update query
finished executing Update query //WHY UPDATE FINISHES FIRST
finished executing Insert query
笔记 :
这个问题可以通过使用异步轻松解决。但是我的插入代码和更新代码在不同的文件中,根据某些情况更新代码可能会执行。所以不想使用异步
问题
即使插入查询首先执行,为什么更新在输出中首先完成
我错过了什么..?