Angular2项目RXJS可观察到的误差


var bar = Observable.create(function(observer){
        try{
            console.log('hello');
            observer.next(22);
            throw new Error('bad bad bad');
            setTimeout(function(){
                observer.next(300);
                observer.complete();
            },2000);
        }catch(e){
            observer.error(e);
        }
    });
    bar.subscribe(
        function nextValueHandler(x){
            console.log(`out in handler${x}`);
        },
        function errorHandler(err){
            console.log('is wrong'+err);
        },
        function completeHandler(){
            console.log('over');
        }
    );

我在Angular2项目中使用RXJS API 5.0。该代码可能是错误的"检测到无法到达的代码"。但是,如果在" settimeout ...'之后,在" settimeout"中丢下新错误...'之后,为什么在" settimeout ..."中无法制作'theow误差...'之前呢?

throw error将跳跃以捕捉块,忽略任何代码。像return语句。这是JavaScript行为。因此,Settimeout从未被调用。

如果将其添加到settimeout,则是回调,因此它不会检查代码是否无法到达代码。

最新更新