Rxjs吞下错误
Rxjs swallows errors
有一个简单的Rxjs
流,我面临这样的情况:
Rx.Observable
.fromArray([1,2,3,4,5,6])
// if commented from here
.windowWithCount(2, 1)
.selectMany(function(x) {
return x.toArray();
})
// to here .. the error bubbles up
.subscribe(function(x) {
console.log('x:',x)
throw new Error("AAHAAHHAHA!");
});
使用windowWithCount + selectMany
,错误在内部被静默捕获,并且不可捕获,并且也不会在控制台中通知
注释这两个块,至少在控制台通知错误
我觉得这是不应该的,还是我错过了什么?
这里jsbin
订阅函数不应该抛出异常。RxJs建模异步信息流,其中观察者代码通常与生产者代码异步运行(例如不在同一个调用堆栈上)。您不能依赖于错误向后传播到生产者。
Rx.Observable
.fromArray([1,2,3,4,5,6])
// if commented from here
.windowWithCount(2, 1)
.selectMany(function(x) {
return x.toArray();
})
// to here .. the error bubbles up
.subscribe(function(x) {
try {
console.log('x:',x)
throw new Error("AAHAAHHAHA!");
}
catch (e) { console.log('error: ' + e); }
});
话虽这么说,看起来RxJS正在"吃掉"这个特殊的异常,这可能是一个bug。RxJS尽最大努力将未观察到的异常作为主机中未处理的异常引发。看起来在这个例子中,这个机制不起作用。你应该在GitHub上打开一个issue
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 我如何修复包含在captcha的addthis中的错误
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 节点是否需要模块传递带有方括号的arg?这是个错误吗
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- CKFinder 3为所选文件返回错误的URL
- 如何仅在RxJs中可观察到的源发出的特定错误上重试
- RxJS:在循环中处理错误.js自定义驱动程序
- 最后,在 rxjs 序列上,在第一个错误时执行
- 如何捕获请求中的错误,然后打开模态,然后在模态使用RxJS关闭时重试
- 在引用最新的rxjs时获取rxjs错误
- RXJS 中的分页数据光标以及对 subject.onDone 和错误的混淆
- 错误在RxJs中被认为是来自可观察对象的发射吗?
- 如何使用Angular处理RxJS中的错误
- RxJS 错误处理
- Rxjs吞下错误