es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Intentando utilizar forkJoin con suscripción.

Estoy intentando usar forkJoin en una suscripción, por alguna razón no funciona en absoluto, no puedo hacer console log de mi código, lo más probable es que no se alcance .subscribe, ¿qué me falta aquí?

public SUB_getActSearch: Subscription;

<p>this.SUB<em>getActSearch = this.searchService.getActSearch({ ...searchOBJ2, PageSize: this.pageSize, PageNumber: this.currentPage }).subscribe((res) => {
        this.Act</em>Data = [];
        let headerPagin = JSON.parse(res.headers.get('X-Pagination'));
        this.elementsLength = headerPagin.totalCount;
        this.currentPage = headerPagin.currentPage;
        this.pageSize = headerPagin.pageSize;
        res.body.map((param) => {
          this.Act<em>Data.push(param);
        });
        this.ActDataSource = new MatTableDataSource<Element>(this.Act</em>Data);
        // console.log('Your form data : ', this.ActDataSource);
      });</p>

<p>public testingforkJoin(): void {
    forkJoin(
      this.SUB<em>getActSearch
    ).subscribe(val => console.log("xxxxx", val));
  }

Quiero usar forkJoin en this.SUB_getActSearch y hacer console log de algo tan pronto como se complete this.SUB_getActSearch, solo para probar el operador forkJoin.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando usar forkJoin en una sola suscripción this.SUB_getActSearch. forkJoin se usa para combinar múltiples observables y emitir los últimos valores de cada observable como un array.

    En lugar de usar forkJoin en una sola suscripción, simplemente puedes encadenar la función testingforkJoin() después de que se haya completado la suscripción.

    Aquí tienes un ejemplo:

    public SUB_getActSearch: Subscription;
    
    this.SUB_getActSearch = this.searchService.getActSearch({ ...searchOBJ2, PageSize: this.pageSize, PageNumber: this.currentPage }).subscribe((res) => {
            this.Act_Data = [];
            let headerPagin = JSON.parse(res.headers.get('X-Pagination'));
            this.elementsLength = headerPagin.totalCount;
            this.currentPage = headerPagin.currentPage;
            this.pageSize = headerPagin.pageSize;
            res.body.map((param) => {
              this.Act_Data.push(param);
            });
            this.ActDataSource = new MatTableDataSource<element>(this.Act_Data);
            console.log('Tus datos del formulario: ', this.ActDataSource);
    
            // llama a testingforkJoin después de que se haya completado la suscripción
            this.testingforkJoin();
          });
    
    public testingforkJoin(): void {
      console.log("Suscripción completada");
    }
    

    En este ejemplo, testingforkJoin() se llamará después de que Act_Data se haya obtenido y se haya completado la suscripción. Simplemente registrará “Suscripción completada” en la consola.

Comments are closed.