-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fin de sección 4 - Funciones de crear observables
- Loading branch information
pedroaraya
committed
Jan 4, 2020
1 parent
d3e1e39
commit 76a8704
Showing
3 changed files
with
103 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,10 @@ | ||
import { } from "rxjs"; | ||
|
||
|
||
|
||
|
||
|
||
|
||
/** | ||
* | ||
===================================================================================================================== | ||
Notas | ||
- Son asíncronos por naturaleza | ||
- | ||
Notas | ||
- | ||
============================================================================================================================== | ||
**/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
============================================================================================================================== | ||
**/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
============================================================================================================================== | ||
**/ |