【发布时间】:2019-11-11 02:05:37
【问题描述】:
我正在尝试使用 async await 在执行其他代码之前执行 http 请求。
更准确地说,我想在我的 mongodb 数据库中删除一个集合,然后再执行其他一些任务。这是我所做的:
app.component.ts:
async deleteRiskRatingData2() {
await this.saveInformationService
.deleteRiskRatingInformation()
.subscribe((data: string) => {
console.log('Deleting risk Rating');
console.log(this.riskRatingTable);
});
console.log('TASKS TO BE EXECUTED AFTER DROPIING COLLECTION');
}
保存信息.service.ts
deleteRiskRatingInformation() {
console.log('INIDE deleteRiskRatingInformation INSIDE SAVE-INFORMATION.SERVICE');
return this.http.get(`${this.uri}/dropRiskRatingCollection`);
}
在后台:
server.js
router.route('/dropRiskRatingCollection').get((req, res) => {
RiskRating.remove({},(err) => {
if (err)
console.log(err);
else
res.json("Risk Rating Collection has been dropped!");
});
});
虽然我的 Async/Await 实现应该允许我执行:
console.log('TASKS TO BE EXECUTED AFTER DROPPING COLLECTION');
在删除收集请求后执行。但正如你所见,这并没有发生。我真的不明白为什么。
知道为什么会这样吗?我的逻辑是否有缺陷?我怎样才能实现我的目标?
谢谢!
【问题讨论】:
标签: node.js angular mongodb express async-await