【发布时间】:2019-09-22 02:36:37
【问题描述】:
我需要截断一个表,然后等待再次开始填充,我必须实现 async/await 否则无法正常工作。
我该怎么做?我尝试在 truncateCharfileWorldSaveTable 上使用 await 并在该功能上使用 async,但我不明白如何使它工作。
async function truncateCharfileWorldSaveTable(){
let query = 'TRUNCATE charfiles_worldsave'
await db.get().query(query, function (err, result, fields) {
if (err) console.error('function truncateCharfileWorldSaveTable: ' + err);
console.info('Tabla charfiles_worldsave_temporal TRUNCATE');
});
}
exports.backupCharfiles = async function(req, res) {
try {
//Primero borramos todo el contenido de la tabla e iniciamos el proceso
await truncateCharfileWorldSaveTable()
console.info('==== INICIANDO COPIA DE CHARFILES POR WORLDSAVE ======')
let files = fs.readdirSync('./charfiles/');
files = files.filter(file => file.endsWith('.chr'));
files.forEach(writeCharfileWorldSaveTable)
res.status(200).send('Se estan guardando los charfiles en la base de datos');
} catch(err) {
console.error('function backupCharfiles: ' + err)
}
};
【问题讨论】:
-
不要将回调 API 与 Promise 一起使用。不知道您为 mysql 使用的是什么库,但它有基于承诺的库。
标签: mysql node.js asynchronous async-await