JSFiddle - React, Tailwind, and code Playground
by hokuma
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/4.1.0/rx.all.compat.min.js"></script>
<div id='zundoko'></div>
JavaScript
var zundoko = ["ズン", "ドコ"];
var intervals = [1500,750];
var dom = document.getElementById('zundoko');
var completed = false;
var zundokoSource = Rx.Observable.generateWithRelativeTime(
0,
function() { return !completed; },
function() {},
function() {
var token = zundoko[Math.floor(Math.random() * 2 )];
var p = document.createElement("p");
p.innerHTML = token;
dom.appendChild(p);
return token;
},
function() {
return intervals[Math.floor(Math.random() * 2)];
}
).timeInterval();
var subscription = zundokoSource.bufferWithCount(5, 1).subscribe(
function(buffer) {
var zundoko = [];
var intervals = [];
buffer.forEach(function(word) {
zundoko.push(word.value);
intervals.push(Math.floor(word.interval / 10));
})
console.log(zundoko);
console.log(intervals.slice(1));
if(zundoko.join(",") === "ズン,ズン,ズン,ズン,ドコ" &&
intervals.slice(1).join(",") === "150,75,75,75") {
completed = true;
}
},
function(error) {
console.log("error");
},
function() {
var p = document.createElement("p");
p.innerHTML = "<strong>キ・ヨ・シ!!</srtong>";
dom.appendChild(p);
}
);