我做了2个将数据从json文件导入数据库的函数,但仅当我单独调用importData函数时才起作用。但是,如果我呼叫deleteData然后importData,则数据库为空。
const tours = JSON.parse(
fs.readFileSync(`${__dirname}/tours-simple.json`, 'utf-8')
);
const deleteData = async () => {
try {
await Tour.deleteMany();
} catch (error) {
console.log(error);
}
};
//Import data into db
const importData = async () => {
try {
await Tour.create(tours);
console.log('Data successfully loaded!');
} catch (error) {
console.log(error);
}
};
deleteData();
importData();
答案 0 :(得分:0)
这两个功能不能同步。好吧,它们在内部同步,但不是在外部世界。您可以将其包装在IIFE中:
(async () => {
await deleteData();
await importData()
})()
或与.then()
deleteData().then(importData).then(()=>console.log('done'))
async
表示该函数返回一个Promise。所以你应该像对待诺言一样对待他们