2021-10-19 08:01:00 +00:00
|
|
|
import { sleep } from "../lib/helpers/async";
|
2021-10-18 06:02:29 +00:00
|
|
|
import { NopeObservable } from "../lib/observables/nopeObservable";
|
2021-10-19 08:01:00 +00:00
|
|
|
import { addObervableToDispatcher, generateConnectedLoaders } from "../lib/testing/generators";
|
2021-10-19 19:27:30 +00:00
|
|
|
import { generateBenchmarkFunction } from "../modules/funcs/generateBenchmarkFunction";
|
|
|
|
|
|
|
|
|
2020-08-21 14:49:48 +00:00
|
|
|
|
2021-10-18 06:02:29 +00:00
|
|
|
const observable = new NopeObservable<number>();
|
|
|
|
observable.setContent(0);
|
2021-10-19 19:27:30 +00:00
|
|
|
const max = 10000000;
|
|
|
|
const benchmark = generateBenchmarkFunction(max, "Test");
|
|
|
|
|
|
|
|
const observer = observable.subscribe(benchmark, { skipCurrent: true });
|
2020-08-21 14:49:48 +00:00
|
|
|
|
2021-10-18 06:02:29 +00:00
|
|
|
let i = 1;
|
2020-08-21 14:49:48 +00:00
|
|
|
|
2021-10-19 19:27:30 +00:00
|
|
|
while (i <= max * 5) {
|
2021-10-18 06:02:29 +00:00
|
|
|
observable.setContent(i);
|
|
|
|
i++;
|
|
|
|
}
|
2020-08-30 07:43:59 +00:00
|
|
|
|
2021-10-18 06:02:29 +00:00
|
|
|
i = 10;
|
2020-08-30 07:43:59 +00:00
|
|
|
|
2021-10-18 06:02:29 +00:00
|
|
|
observable.subscribe((...args) => {
|
|
|
|
console.log("shoud not receive 10:", ...args);
|
2021-10-19 19:27:30 +00:00
|
|
|
}, { skipCurrent: true });
|
2021-10-18 06:02:29 +00:00
|
|
|
|
2021-10-19 08:01:00 +00:00
|
|
|
observable.setContent(1337);
|
|
|
|
|
|
|
|
async function main() {
|
|
|
|
const loaders = await generateConnectedLoaders({
|
|
|
|
logLevel: "info"
|
|
|
|
});
|
|
|
|
|
|
|
|
const sender = await addObervableToDispatcher(loaders[0].dispatcher, {
|
|
|
|
topic: "test",
|
|
|
|
schema: {},
|
|
|
|
mode: "publish",
|
|
|
|
}, "data");
|
|
|
|
|
|
|
|
await sleep(100);
|
|
|
|
|
|
|
|
const receiver = await addObervableToDispatcher(loaders[1].dispatcher, {
|
|
|
|
topic: "test",
|
|
|
|
schema: {},
|
|
|
|
mode: "subscribe",
|
|
|
|
});
|
|
|
|
|
|
|
|
await sleep(100);
|
|
|
|
|
|
|
|
console.log("should receive 'test' and 'update'");
|
|
|
|
|
|
|
|
receiver.subscribe((data) => console.log("receiver:", data));
|
|
|
|
sender.subscribe((data) => console.log("sender :", data));
|
|
|
|
sender.setContent("update");
|
|
|
|
|
|
|
|
await sleep(100);
|
|
|
|
process.exit(0);
|
|
|
|
}
|
|
|
|
|
|
|
|
main().catch(console.error);
|