angular2项目rxjs可观察到的错误

时间:2017-06-27 02:41:59

标签: javascript angular ecmascript-6 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。此代码可能是错误的,检测到无法访问的代码。'但如果make'抛出新错误......'在' setTimeout ...'在它正确之后,为什么不能做出错误......'在' setTimeout ...'之前?

1 个答案:

答案 0 :(得分:0)

throw error将跳转到catch块,忽略后面的任何代码。像return声明一样。它的javascript行为。所以从不调用setTimeout。

如果您将其添加到setTimeout,它会回调,因此如果代码无法访问,则无法检查代码。