Я пытаюсь использовать 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');
}
save-information.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');
После того, как запрос на сброс был выполнен.Но этого не произошло, как вы видите.И я действительно не понимаю, почему.
Есть идеи, почему это происходит?Моя логика где-то ошибочна?И как мне достичь своей цели?
Спасибо!