Я полный новичок. Проблема, с которой я сталкиваюсь, заключается в том, что, как только я выдаю ошибку в rx js наблюдаемую, мой тест об этом не знает. Когда я подписываюсь в тесте, и он терпит неудачу в течение rx js, он просто выдает ошибку, и мне нужно уведомить мой тест о том, что ошибка произошла. Вот более простой пример, показывающий, что «тест не пройден» никогда не печатается.
import { sample } from "rxjs/operators";
const source = interval(1000);
// sample last emitted value from source every 2s
// output: 2..4..6..8..
const example = source.pipe(sample(interval(2000)));
async function test_runner() {
setup();
try {
await test();
console.log("test succeeded");
} catch (e) {
console.log("test failed");
}
}
async function setup() {
console.log("setup");
const subscribe = example.subscribe((val) => {
console.log(val);
if (val === 4) { throw Error("error!"); }
});
}
async function test() {
console.log("test");
await waitMs(10000);
}
test_runner();
async function waitMs(waitTime: number): Promise<void> {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve();
}, waitTime);
});
}
Есть ли способ справиться с этим? Я ценю любую помощь.