Logo

dev-resources.site

for different kinds of informations.

Angular - Rxjs - Operator map

Published at
6/29/2022
Categories
angular
operators
reactiveprogramming
Author
ricardojavister
Author
15 person written this
ricardojavister
open
Angular - Rxjs - Operator map

Transforms each item from an source by using a projection function and emit a result as an observable.

Let me show you an example:

I created an Api in jsonbin.io and it is returning this json:

{
    "record": [
        {
            "name": "Pineapple",
            "description": "There are many variations of passages of Lorem.",
            "price": 650,
            "image": "https://images.unsplash.com/photo-1587883012610-e3df17d41270?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80"
        },
        {
            "name": "Orange",
            "description": "There are many variations of passages of Lorem.",
            "price": 350,
            "image": "https://images.unsplash.com/photo-1577234286642-fc512a5f8f11?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=735&q=80"
        },
        {
            "name": "Grapes",
            "description": "There are many variations of passages of Lorem.",
            "price": 120,
            "image": "https://images.unsplash.com/photo-1577069861033-55d04cec4ef5?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=764&q=80"
        },
        {
            "name": "Morron",
            "description": "There are many variations of passages of Lorem.",
            "price": 75,
            "image": "https://images.unsplash.com/photo-1525607551316-4a8e16d1f9ba?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=710&q=80"
        },
    ],
    "metadata": {
        "id": "62b9ef87192a674d291cb521",
        "private": true,
        "createdAt": "2022-06-27T17:57:27.165Z"
    }
}
Enter fullscreen mode Exit fullscreen mode

Firts, I show all the products at the left side and when the user clicks over an specific product, it will map the product selected at the right side.


import { Component, OnInit } from '@angular/core';
import { map } from 'rxjs';
import { Record } from 'src/app/model/record';
import { ProductService } from 'src/app/services/product.service';

@Component({
  selector: 'app-operator-map',
  templateUrl: './operator-map.component.html',
  styleUrls: ['./operator-map.component.scss'],
})
export class OperatorMapComponent implements OnInit {
  records: Record[] = [];
  record!: Record;
  constructor(private productService: ProductService) {}

  ngOnInit(): void {
    this.getProducts();
  }

  getProducts(): void {
    this.productService.getProducts().subscribe((data) => {
      this.records = data.record;
    });
  }

  mapRecord(value: number) {
    this.productService
      .getProducts()
      .pipe(map((x) => x.record))
      .subscribe((data) => {
        this.record = data[value];
      });
  }
}

Enter fullscreen mode Exit fullscreen mode

Live Demo
Download Code

reactiveprogramming Article's
30 articles in total
Favicon
RxJS: The Reactive Revolution in JavaScript 🚀
Favicon
Building Real-Time Applications with WebSockets and Reactive Streams
Favicon
Building Scalable Applications with Kafka and Reactive Programming
Favicon
Mastering Back Pressure in Reactive Distributed Systems
Favicon
Reactive Programming with Spring Boot and Web Flux
Favicon
Unleashing Reactive Programming: Boosting Responsiveness, Resilience, and Scalability
Favicon
Project Reactor: About Fuseable interface ASYNC mode under different threads
Favicon
Project Reactor: About Fuseable interface ASYNC mode under the same thread
Favicon
Project Reactor: About Fuseable interface SYNC mode
Favicon
Project Reactor: About Scannable interface
Favicon
Project Reactor: About the side effect operator
Favicon
Project Reactor: Tips (1)
Favicon
MJPEG stream demo server by Reactor netty
Favicon
Reactor Netty: HTTP server example
Favicon
Reactor Netty: UDP DNS client example
Favicon
19 Best React devtools in 2024
Favicon
Exploring the Role of Reactive Programming in Event-Driven Architectures
Favicon
Should we use Reactive architecture with Java?
Favicon
Signals in Angular – How to Write More Reactive Code
Favicon
Why Every Developer Must Know Reactive Programming
Favicon
Reactive database access on the JVM
Favicon
Why You Should Use Spring WebFlux Instead of the @Async Annotation
Favicon
Create DTO using get results from repository returns duplicate values in Spring Boot Reactive WebFlux
Favicon
The Architecture of the Reactivity Layer in Solid.js
Favicon
The Advantages of Using Solid.js for Web Development
Favicon
Angular - Rxjs - Operator mergeAll
Favicon
Angular - Rxjs - Operator map
Favicon
Building An Infinite Scroll Into Your React App
Favicon
The Best New Way To Cache API Responses with Angular & RxJs
Favicon
Reactive Programming

Featured ones: