【发布时间】:2020-06-15 02:19:06
【问题描述】:
我想按顺序(一、二、三、四)查看消息。 因为目前我的脚本不起作用,因为请求没有时间完成。
此时代码返回一三四二 我认为这是问题,因为我不使用 async 和 await 但我不明白在哪里以及如何使用
function dropAll() {
console.log("ONE");
db.query("SHOW tables", (err, result) => {
result.map(async list => {
db.query(`DROP TABLE \`${list.Tables_in_gcd_updt}\``, (err, results) => {
console.log(list.Tables_in_gcd_updt + " REMOVED");
console.log("TWO");
});
});
});
}
function getAll() {
console.log("FOUR");
}
const infiniteQuestion = function() {
prompt.question("What do you want to your DB project ?", answer => {
switch (answer) {
case "drop":
dropAll();
console.log("THREE");
getAll();
infiniteQuestion();
break;
case "exit":
console.log(`${answer} unknow`);
rl.close();
process.exit(0);
default:
infiniteQuestion();
}
});
};
infiniteQuestion();
谢谢
【问题讨论】:
-
如果你想使用
await/async,那么你应该切换到支持Promises的mysql模块,例如mysql2 - Promise wrappers、mysql-promise 或使用util.promisify自己完成这一步。
标签: javascript mysql node.js async-await