Это можно сделать, используя внешнюю функцию async / await, или вы можете использовать новую для ... итерации (как вы делаете сейчас).
for (const theY of Y) {
await yourDeleteFunction(theY);
}
Но, честно говоря,если у вас есть доступ к BE, я бы немного изменил ваш подход. Вместо того, чтобы делать forEach или for ... или любую другую итерацию, вы должны использовать bulkDelete. Таким образом вы сохраните несколько запросов к вашему BE и несколько исполнений БД :). Примерно так:
deleteZInz(id: number, name: string, items: Y[]) {
this.deleteYInz(items)
.subscribe(result => {
this.ZService.deleteZ(...etc);
});
}
deleteYInz(items: Y[]): Observable<yourReturnType> {
return this.targetService.deleteBulk(
this.selectedSecuritySubject.value,
items.map(item => item.id),
);
}
Таким образом, допустим, у вас есть БД MySQL, вы будете делать только 1 удаление, выполняя где в (1, 2, 3, 4). , n) вместо выполнения 1 запроса и 1 удаления для каждого из элементов Y.