function RXlatest(f, options = {}) {
return Generators.observe(resolve => {
const vals = [];
const start = performance.now();
const logVal = v => {
const ms = Math.floor(performance.now() - start);
const val = options.logMS ? { ms: ms, v: v } : v;
if (options.logAll) {
vals.push(val);
resolve(vals);
} else {
resolve(val);
}
};
resolve([]);
f().subscribe({
next(x) {
logVal(x);
},
error(err) {
if (err.message !== undefined) {
logVal('❌: ' + err.message);
} else {
logVal('❌: ' + err);
}
},
complete() {
logVal('✅');
}
});
});
}