我有这两个功能
async function movieExists(movie){
return new Promise((resolve, reject) => {
const sql = '...';
con.query(sql, (err,result,fields) => {
if(err)
throw err;
else if(!result[0])
reject("Error");
else
resolve(result[0].total);
})
})
}
async function addMovie(movie){
return new Promise((resolve, reject) => {
const sql = '...';
const exists = await movieExists(movie); //Error on this line
if(exists == 0){
con.query(sql, (err,result,fields) => {
if(err)
reject("Error");
else
resolve("Success");
})
}else
resolve("Movie already exists");
})
}
错误: 语法错误:await 仅在异步函数中有效
Node 版本 -> v10.16.0
**如果您对代码本身有任何建议,我很高兴听到它们。
最佳答案
await 关键字直接位于您传递给 new Promise()
的函数内部,该函数不是异步的。
尝试将其移到该函数之外,如下所示:
async function addMovie(movie){
const exists = await movieExists(movie);
return new Promise((resolve, reject) => {
const sql = '...';
// ...
})
}
关于javascript - Node.js 异步函数未被识别为有效的异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60842164/