我是一个完整的初学者。我遇到的问题是,一旦我在 rxjs observable 中抛出错误,我的测试就不知道了。当我订阅测试时,它在 rxjs 中失败了,它只会抛出一个错误,我需要通知我的测试发生了错误。这是一个更简单的示例,它表明从未打印过“测试失败”。
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);
});
}
有没有办法处理这个?我很感激任何帮助。