Предположение: this.medicoesSelecionadas - это массив объектов
Пока массив this.medicoesSelecionadas не очень длинный, я бы, вероятно, решил это с помощью рекурсии.Предполагая, что ваш код выше находится внутри функции с именем'istingFunc () ', я бы сделал что-то вроде следующего:
existingFunc() {
this.recursiveFunc(this.medicoesSelecionadas);
}
recursiveFunc(medicoesSelecs: Array<Object>) { // replace this type with the correct one
if (medicoesSelecs.length > 0) {
let medicao = medicoesSelecs.shift(); // remove first item from array
let historicoEmpreiteiro;
this.loading = true;
console.log(' ENTORU AQUI ');
this.medicaoEmpService.ObterHistoricoEmpreiteiro(medicao.id)
.subscribe(result => {
this.loading = false;
historicoEmpreiteiro = result;
const refDialog = this.dialog.open(DescontoEmpreiteiroComponent, {
data: { historicoEmpreiteiro: JSON.stringify(historicoEmpreiteiro) }
});
refDialog.afterClosed().subscribe(r => {
console.log('Entrou closed');
this.recursiveFunc(medicoesSelecs); // call self with remaining array
});
});
console.log(' ENTORU ALI ');
}
}
}
Это создаст некоторые издержки, так как все функции останутся в стеке до последнейнаконец-то закрыто, поэтому вы должны быть осторожны, чтобы не вызывать слишком большой массив для начала.