1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Como fazer uma função esperar uma outra função que tem um subscribe com observable dentro?

Discussion in 'Technology' started by Joannis, Oct 8, 2018.

  1. Joannis

    Joannis Guest

    Seguinte, Tenho uma função que gera um PDF, essa função pega um array montado e monta uma página. Após isso ela solicita a próxima página para o backend através de uma função com um subscribe.

    Meu problema é que a função não espera, o typescript não segue um fluxo linear no código.

    Segue uma representação em blocos funcionais para melhor entendimento.

    geratePDF() {
    this.GetList();
    this.DesenhaPag();
    this.Page = this.Page ++;
    this.GetList();
    this.DesenhaPag();
    }


    Aqui minha função com subscribe.

    GetList() {
    this.subcription = this.chipservice.listarChip(dadospagechip).subscribe(
    (response) => {

    const listChips = this.chipservice.Validate(response);
    this.montaArraychip(listChips[1], listChips[2]);
    this.subcription.unsubscribe();

    });
    }

    listarChip(listpage:ListChipsInteface):Observable<any> {
    const token: LoginInteface = this.authService.GetToken();
    return this.http
    .post(`${this.api}/api/user/ChipListHistory/`,[token ,chipvalue])
    .map(res => res.json());
    }


    Preciso de alguma forma segurar a geratePDF até a GetList terminar de Montar o Array.

    Tentei com Promisse não consegui, Minha melhor solução até agora foi com async, await e sleep, mas não ficou uma solução ruim, pois não sei ao certo quanto tempo demora a resposta.

    Como seria a solução ideal?

    Login To add answer/comment
     

Share This Page