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 错误在内部被静默捕获并且不可捕获,也不会在控制台中通知

评论这 2 个块至少会在控制台上通知错误
我不认为这是应该的,或者我错过了什么?
here the 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 是 "eating" 这个特殊的异常,这可能是一个错误。 RxJS 尽最大努力将未观察到的异常作为宿主中未处理的异常来引发。看起来在这种情况下,这种机制不起作用。你应该在 GitHub.

上打开一个问题