Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

178
Visualizações
Acción después de empujar elementos en la matriz

Implementé una función que uso para llamar a una API, recuperar información para cada producto y enviarla a la matriz. Después de haber hecho esto para todos los productos, haría una acción con la matriz.

Así que tengo:

 newProducts: any = [] loadOfferRelated(offer) { // consider this offer with 2 products array. let products = offer.products for (let i = 0; i < products.length; i++) { let apiCall = this.offerService.apiCall(products[i].id, product.catalogId) apiCall.pipe(untilDestroyed(this)).subscribe( (data) => { operationOnArray(data, products[i])} ) } if(this.newProducts.length > 0){ // ---> Here i should call another function but it doesn't enter there) } operationOnArray(data, product){ // I make some operation product and save in array this.newProducts.push(products) console.log("this.newProducts", this.newProducts) <-- this is every for populated + 1 return }

Tengo un problema para llamar al if cuando se completa la matriz newProducts, ¿cómo puedo hacerlo?

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

De acuerdo, puede usar un forkJoin para hacer las llamadas a la API simultáneamente y usar el operador de map para devolver cada elemento transformado, insertar los datos devueltos en la matriz y finalmente llamar a la condición if.

 newProducts: any = []; loadOfferRelated(offer) { // consider this offer with 2 products array. let products = offer.products; const apiCalls = products .map((product: any) => this.offerService.apiCall(product.id, product.catalogId)) .pipe( map((data: any, i: number) => { // i am not sure what your doing with the api call (data) so I am merging product and data, you customize // to your requirement return { ...products[i], ...data }; }) ); forkJoin(apiCalls).subscribe((newProducts: Array<any>) => { this.newProducts = newProducts; if (this.newProducts.length > 0) { // ---> Here i should call another function but it doesn't enter there) } }); }
about 4 years ago · Santiago Trujillo Relatório

0

Su problema es que todo lo que sucede en su suscripción es asíncrono. Eso significa que su si se activa antes de que finalice su solicitud, por lo que es muy probable que su condición si siempre termine con un falso.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda