Angular - subscribe - assíncrono - Como obter um resultado de um subscribe?

Caros, alguém pode me ajudar? Eu queria que o método abaixo funcionasse… Porém o retorno é vazio, embora no console.log dentro do subscribe vem o array do banco. Dentro do for a variavel this.qdDias vem com o valor e a lista também… mas fora de la, parece que é destruida.

obterParametroPrazoMap(nomePrazo: string) : any {
 
        this.service.obterParametrosgeraisMap().pipe(take(1)).subscribe(
            data => {
              this.listParametrosGerais = data.data;
              this.listParametrosGerais.forEach(x =>
          
                 (this.listParametrosGerais, x)
          
                 )
                 for (var i = 0; i < this.listParametrosGerais.length; i++) {

                    if (this.listParametrosGerais[i].chavePrimaria.tipoParametro.nomeTipoParametro === nomePrazo) 
                    {   
                        this.qdDias = this.listParametrosGerais[i].quantidadeDiasPrazo;
                        
                          \\ está com o valor   this.qdDias
                           console.log("Resultado dentro do for: ", this.qdDias)                    
                        break
                    }
                }
            }            
          );
           // fica sem valor   this.qdDias
          console.log("resultado do retorno: " , this.qdDias)
       return this.qdDias;
    }

Alguém sabe como resolver isso?

Resolvi desta forma:

Promise.resolve(2);
        Promise.all([
           this.service.obterParametrosgeraisMap()
                .then((lista: any) => {
                    this.listParametrosGerais = lista.data;
                })
            ,
 this.service.obterParametrosEspecificosMap()
                .then((lista: any) => {
                    this.listParametrosEspecifico = lista.data;
                })
        ]).then(() => {    
            this.iniciarVariaveisDicionario();
 });
1 curtida