Skip to content

Commit

Permalink
Fin de sección 4 - Funciones de crear observables
Browse files Browse the repository at this point in the history
  • Loading branch information
pedroaraya committed Jan 4, 2020
1 parent d3e1e39 commit 76a8704
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 7 deletions.
10 changes: 3 additions & 7 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
import { } from "rxjs";






/**
*
=====================================================================================================================
Notas
- Son asíncronos por naturaleza
-
Notas
-
==============================================================================================================================
**/
49 changes: 49 additions & 0 deletions src/observables/08-asyncScheduler.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import { asyncScheduler } from "rxjs";

// En js se utiliza
// setTimeOut(() => {}, 3000)
// setTimeInterval(() => {}, 3000)

const saludar = () => console.log("Hola Mundo");
const saludar2 = nombre => console.log(`Hola ${nombre}`);

// 1er: argumento : es la función que queremos ejecutar
// 2do: es la cantidad de tiempo que queremos ejecutar
// 3er: argumento es el state : el estado

// Referencias
// asyncScheduler.schedule( saludar, 2000 );
// asyncScheduler.schedule( saludar2, 2000, 'Peter');

// no puede utilizar una función de flecha en este caso
const subs = asyncScheduler.schedule(
function(state) {
console.log("state", state);

// convertirlo a un interval
this.schedule(state + 1, 1000); // envio state que queremos que se repita y el delay del tiempo que queremos que se ejecute
},
3000,
0
);
// 0 es el state tiene que ser un argumento, este caso es el state inicial

// Cancelar suscripción

// 1er forma
// setTimeout(() => {
// subs.unsubscribe();
// }, 6000);

// 2da Forma
asyncScheduler.schedule(() => subs.unsubscribe(), 6000);

/**
*
=====================================================================================================================
Notas
- Un asyncScheulder no crea un observable sino que crea una suscripción (ES ASÍNCRONO)
- Una suscripción es un producto de un subscribe es decir el punto de suscribe de un obs
- Con asyncScheulder podemos manejar nuestra suscripción como cualquier otra suscripción en rxjs
==============================================================================================================================
**/
51 changes: 51 additions & 0 deletions src/observables/09-from-avanzado.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import { of, from } from "rxjs";


const observer ={
next: val => console.log('next', val),
complete: () => console.log('complete')
};

// const source$ = from([1,2,3,4,5]);
// const source$ = of(...[1,2,3,4,5]);

// const source$ = from('Pedro');
// const source$ = of('Pedro');

const source$ = from( fetch('https://api.github.com/users/klerith'));

source$.subscribe( async(resp)=>{
console.log(resp);

const dataResp = await resp.json();

console.log(dataResp.url);
});


const miGenerador = function*(){
yield 1;
yield 2;
yield 3;
yield 4;
yield 5;
}

const miIterable = miGenerador();

// for (let id of miIterable ) {
// console.log(id);
// }

from( miIterable ).subscribe( observer ); // es más recomendado

// source$.subscribe( observer );

/**
*
=====================================================================================================================
Notas
- of: toma argumentos y generá una secuencia de valores
- from: crea un obs en base a un array , u objeto con estructura de arreglo, promise, iterable, observable
==============================================================================================================================
**/

0 comments on commit 76a8704

Please sign in to comment.