Skip to content

Instantly share code, notes, and snippets.

@code-brewer
Last active October 26, 2019 02:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save code-brewer/bcb5a16267c7cac4120bc25d8c3ecf6a to your computer and use it in GitHub Desktop.
Save code-brewer/bcb5a16267c7cac4120bc25d8c3ecf6a to your computer and use it in GitHub Desktop.
rxjs_v6+_cdn_defer // source https://jsbin.com/josumud
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>distinctUntilChanged</title>
<!-- <script src="https://npmcdn.com/@reactivex/rxjs@5.0.0-beta.3/dist/global/Rx.umd.js"></script> -->
<script src="https://unpkg.com/rxjs/bundles/rxjs.umd.min.js"> </script>
</head>
<body>
<script id="jsbin-javascript">
"use strict";
var of = rxjs.of, timer = rxjs.timer, defer = rxjs.defer, merge = rxjs.merge;
var switchMap = rxjs.operators.switchMap;
// refer: https://www.learnrxjs.io/operators/creation/defer.html
var now = function () {
var _now = new Date();
return "[Second: " + _now.getSeconds() + ":" + _now.getMilliseconds() + "]";
};
var s1 = of("S1:" + now()); //will capture current date time
var s2 = defer(function () { return of("S2:" + now()); }); //will capture date time at the moment of subscription
console.log("Start: " + now());
timer(2000)
.pipe(switchMap(function (_) { return merge(s1, s2); }))
.subscribe(console.log);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNiaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJqc2Jpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQVEsZ0JBQUUsRUFBRSxrQkFBSyxFQUFFLGtCQUFLLEVBQUUsa0JBQUssQ0FBVTtBQUVqQyx3Q0FBUyxDQUFtQjtBQUVwQyxnRUFBZ0U7QUFFaEUsSUFBSSxHQUFHLEdBQUc7SUFDUixJQUFJLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFBO0lBQ3JCLE1BQU0sQ0FBQyxjQUFZLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBSSxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQUcsQ0FBQTtBQUNuRSxDQUFDLENBQUE7QUFFRCxJQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0M7QUFDOUQsSUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLGNBQU0sT0FBQSxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQWpCLENBQWlCLENBQUMsQ0FBQyxDQUFDLHNEQUFzRDtBQUVqRyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBRS9CLEtBQUssQ0FBQyxJQUFJLENBQUM7S0FDUixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBYixDQUFhLENBQUMsQ0FBQztLQUNuQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyBvZiwgdGltZXIsIGRlZmVyLCBtZXJnZSB9ID0gcnhqcztcblxuY29uc3QgeyBzd2l0Y2hNYXB9ID0gcnhqcy5vcGVyYXRvcnM7XG5cbi8vIHJlZmVyOiBodHRwczovL3d3dy5sZWFybnJ4anMuaW8vb3BlcmF0b3JzL2NyZWF0aW9uL2RlZmVyLmh0bWxcblxubGV0IG5vdyA9ICgpID0+IHtcbiAgbGV0IF9ub3cgPSBuZXcgRGF0ZSgpXG4gIHJldHVybiBgW1NlY29uZDogJHtfbm93LmdldFNlY29uZHMoKX06JHtfbm93LmdldE1pbGxpc2Vjb25kcygpfV1gXG59XG5cbmNvbnN0IHMxID0gb2YoXCJTMTpcIiArIG5vdygpKTsgLy93aWxsIGNhcHR1cmUgY3VycmVudCBkYXRlIHRpbWVcbmNvbnN0IHMyID0gZGVmZXIoKCkgPT4gb2YoXCJTMjpcIiArIG5vdygpKSk7IC8vd2lsbCBjYXB0dXJlIGRhdGUgdGltZSBhdCB0aGUgbW9tZW50IG9mIHN1YnNjcmlwdGlvblxuXG5jb25zb2xlLmxvZyhcIlN0YXJ0OiBcIiArIG5vdygpKTtcblxudGltZXIoMjAwMClcbiAgLnBpcGUoc3dpdGNoTWFwKF8gPT4gbWVyZ2UoczEsIHMyKSkpXG4gIC5zdWJzY3JpYmUoY29uc29sZS5sb2cpOyJdfQ==
</script>
<script id="jsbin-source-javascript" type="text/javascript">const { of, timer, defer, merge } = rxjs;
const { switchMap} = rxjs.operators;
// refer: https://www.learnrxjs.io/operators/creation/defer.html
let now = () => {
let _now = new Date()
return `[Second: ${_now.getSeconds()}:${_now.getMilliseconds()}]`
}
const s1 = of("S1:" + now()); //will capture current date time
const s2 = defer(() => of("S2:" + now())); //will capture date time at the moment of subscription
console.log("Start: " + now());
timer(2000)
.pipe(switchMap(_ => merge(s1, s2)))
.subscribe(console.log);
</script></body>
</html>
"use strict";
var of = rxjs.of, timer = rxjs.timer, defer = rxjs.defer, merge = rxjs.merge;
var switchMap = rxjs.operators.switchMap;
// refer: https://www.learnrxjs.io/operators/creation/defer.html
var now = function () {
var _now = new Date();
return "[Second: " + _now.getSeconds() + ":" + _now.getMilliseconds() + "]";
};
var s1 = of("S1:" + now()); //will capture current date time
var s2 = defer(function () { return of("S2:" + now()); }); //will capture date time at the moment of subscription
console.log("Start: " + now());
timer(2000)
.pipe(switchMap(function (_) { return merge(s1, s2); }))
.subscribe(console.log);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNiaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJqc2Jpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQVEsZ0JBQUUsRUFBRSxrQkFBSyxFQUFFLGtCQUFLLEVBQUUsa0JBQUssQ0FBVTtBQUVqQyx3Q0FBUyxDQUFtQjtBQUVwQyxnRUFBZ0U7QUFFaEUsSUFBSSxHQUFHLEdBQUc7SUFDUixJQUFJLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFBO0lBQ3JCLE1BQU0sQ0FBQyxjQUFZLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBSSxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQUcsQ0FBQTtBQUNuRSxDQUFDLENBQUE7QUFFRCxJQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0M7QUFDOUQsSUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLGNBQU0sT0FBQSxFQUFFLENBQUMsS0FBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQWpCLENBQWlCLENBQUMsQ0FBQyxDQUFDLHNEQUFzRDtBQUVqRyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBRS9CLEtBQUssQ0FBQyxJQUFJLENBQUM7S0FDUixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsS0FBSyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBYixDQUFhLENBQUMsQ0FBQztLQUNuQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgeyBvZiwgdGltZXIsIGRlZmVyLCBtZXJnZSB9ID0gcnhqcztcblxuY29uc3QgeyBzd2l0Y2hNYXB9ID0gcnhqcy5vcGVyYXRvcnM7XG5cbi8vIHJlZmVyOiBodHRwczovL3d3dy5sZWFybnJ4anMuaW8vb3BlcmF0b3JzL2NyZWF0aW9uL2RlZmVyLmh0bWxcblxubGV0IG5vdyA9ICgpID0+IHtcbiAgbGV0IF9ub3cgPSBuZXcgRGF0ZSgpXG4gIHJldHVybiBgW1NlY29uZDogJHtfbm93LmdldFNlY29uZHMoKX06JHtfbm93LmdldE1pbGxpc2Vjb25kcygpfV1gXG59XG5cbmNvbnN0IHMxID0gb2YoXCJTMTpcIiArIG5vdygpKTsgLy93aWxsIGNhcHR1cmUgY3VycmVudCBkYXRlIHRpbWVcbmNvbnN0IHMyID0gZGVmZXIoKCkgPT4gb2YoXCJTMjpcIiArIG5vdygpKSk7IC8vd2lsbCBjYXB0dXJlIGRhdGUgdGltZSBhdCB0aGUgbW9tZW50IG9mIHN1YnNjcmlwdGlvblxuXG5jb25zb2xlLmxvZyhcIlN0YXJ0OiBcIiArIG5vdygpKTtcblxudGltZXIoMjAwMClcbiAgLnBpcGUoc3dpdGNoTWFwKF8gPT4gbWVyZ2UoczEsIHMyKSkpXG4gIC5zdWJzY3JpYmUoY29uc29sZS5sb2cpOyJdfQ==
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment