Git Product home page Git Product logo

platzi-board's Introduction

Platzi-Board

Curso de programación reactiva con Rxjs (Parte 2) https://platzi.com/cursos/programacion-reactiva-rxjs/

Para este curso realizamos este proyecto que se trata de un tablero para dibujar. Usaremos canvas de html y los operadores de Rxjs para escuchar y transformar los eventos del mouse.

VER DEMO AQUÍ => https://davidtres.github.io/Platzi-Board/

Así que iniciamos con el operador fromEvent para escuchar los eventos del mouse sobre el canvas y luego obtenemos las coodenadas, transformandolas con el operador map para restar las coordenadas offsetLeft y offsetTop del canvas, para finalmente obtener las coordendas dentro del cuadro canvas que usaremos para pintar los trazos.

Operadores de distincion ./src/ejercicios/distinct.js

  • distinct : Evita que se emitan valores repetidos.
  • distinctUntilChanged : emite todos los valores enviados por el observable de origen si son distintos en comparación con el último valor emitido por el observable de resultado. Es decir, lo emite siempre que el ultimo valor haya cambiado.
  • distinctUntilKeyChanged : funciona igual que el anterior pero usando una propiedad del objeto recibido.

Operadores de tiempo

  • debounceTime : Emite un valor de fuente solo después de que haya pasado un periodo de tiempo N en milisegundos que hemos establecido sin otra emisión de la fuente. Es decir, al recibir un nuevo valor durante el intervalo de tiempo N, este se reinicia y finalmente emite el ultimo valor.
  • throttleTime : Deja pasar un valor inicial y luego ignora los valores de la fuente durante los proximos N milisegundos establecidos
  • auditTime : Inicia con un temporizador y al finalizar el tiempo N en milisegundos establecido, se emite el ultimo valor recibido.
  • sampleTime : Se ejecuta la función cada N milisegundos establecidos, y emite el ultimo valor, aunque no hayan.

Operadores de fusión ./src/ejercicios/merge.js

  • merge → Combina los valores de múltiples observables con un solo resultado observable. Será removido en RxJS v8 por mergeWith.
  • mergeAll → Convierte un observable de orden superior en un observable de primer orden que entrega simultáneamente todos los valores que se emiten en los observables internos. . Observable de orden superior: Observable que emite otros observables.

-mergeMap → Proyecta cada valor de fuente a un observable que se fusiona en la salida del observable. Es una mezcla entre mapear un observador y luego mezclar todos los valores que han sido emitidos.

Operadores de completado ./src/ejercicios/takeUntil.js

El operador takeUntil nos ayuda a completar un observable si otro observable ha emitido un valor.

MANEJO DE ERRORES ./src/ejercicios/manejo-de-errores.js

-catchError : Captura errores en un observable retornando un nuevo observable o lanzando un error.

  • retry : Reintenta ejecutar el observable cuando sucede un error. El número de reintentos lo puedes especificar.

Peticiones HTTP con RxJS ./src/ejercicios/fromFetch.js

  • ajax : Crea un observable para una solicitud Ajax con un objeto de solicitud con URL, encabezados, etc. o una cadena para una URL.

  • fromFetch : es un operador para realizar peticiones HTTP que internamente utiliza Fetch API. Puede interrumpir la petición API des uscribiendo el observable con takeUntil o .unsuscribe()

Notas del curso: https://docs.google.com/document/d/1ePrxEllEAwXyWgLkyxN30VCTfQzpoYN0fuJA8nwzfjo/edit?usp=sharing

platzi-board's People

Contributors

davidtres avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.