节点JS:如何进行以下调用,等待被调用的函数完成后再继续]]
我仍然无法将注意力集中在异步/等待功能上,并且在以下情况下尝试了几种解决方案均未成功:
我具有此功能:
function addDataToDb(articleData) { initMongoDb(); kanpionDb.on('error', console.error.bind(console, 'connection error:')); kanpionDb.once('open', function () { SiteUrlModel.init().then(() => { articleData.forEach(articleItem => { var article = new SiteUrlModel(articleItem).save(function (error) { if (error) { console.log("Failed: " + articleItem.siteName); } else { console.log("Success " + articleItem.siteName); } }); }); }); }); }
从另一个文件中调用:
c.on('drain', async function () { Database.addDataToDb(ArticleList); console.log("All done"); });
问题:如何使
console.log("All done")
仅在完成Database.addDataToDb(ArticleList)
执行后才显示消息?
我仍然无法将异步/等待功能笼罩在心,在以下情况下,我尝试了几种解决方案均未成功:我具有此功能:function addDataToDb(articleData){...
回答如下:
节点JS:如何进行以下调用,等待被调用的函数完成后再继续]]
我仍然无法将注意力集中在异步/等待功能上,并且在以下情况下尝试了几种解决方案均未成功:
我具有此功能:
function addDataToDb(articleData) { initMongoDb(); kanpionDb.on('error', console.error.bind(console, 'connection error:')); kanpionDb.once('open', function () { SiteUrlModel.init().then(() => { articleData.forEach(articleItem => { var article = new SiteUrlModel(articleItem).save(function (error) { if (error) { console.log("Failed: " + articleItem.siteName); } else { console.log("Success " + articleItem.siteName); } }); }); }); }); }
从另一个文件中调用:
c.on('drain', async function () { Database.addDataToDb(ArticleList); console.log("All done"); });
问题:如何使
console.log("All done")
仅在完成Database.addDataToDb(ArticleList)
执行后才显示消息?
我仍然无法将异步/等待功能笼罩在心,在以下情况下,我尝试了几种解决方案均未成功:我具有此功能:function addDataToDb(articleData){...
回答如下: