-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathobservableCreate.js
More file actions
31 lines (26 loc) · 832 Bytes
/
observableCreate.js
File metadata and controls
31 lines (26 loc) · 832 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const {Observable} = require('rxjs');
const { map } = require('rxjs/operators');
//create observable object : encapsulates a producer function
const hello$ = Observable.create(function(observer) {
//emit Hello, World, wait 1s and emit Hi again then complete
observer.next('Hello');
observer.next('World');
setTimeout(() => {
observer.next('Hi again');
observer.complete();
}, 1000);
}).pipe (map(x=> `${x} ${x}`));
//subscribe (every subscription triggers the producer function)
hello$.subscribe(x=>console.log(x) );
console.log("Just after the subscribe");
hello$.subscribe({
next(x) {
console.log(`got value ${x}`);
},
error(err) {
console.error(`something went wrong:${err}`);
},
complete() {
console.log(`done`);
}
});