es6吞咽控制台错误

时间:2018-05-17 04:18:29

标签: javascript error-handling ecmascript-6

我在我的项目中使用ES6并且发现没有显示控制台错误。我使用Gulp with Babel(require('gulp-babel');)来传播ES6。

采用以下示例:我实例化一个扩展父项的类,方法method1()然后调用一个在子项中不存在super.method2()的方法。

程序停止运行但我没有错误。这是为什么?

其他档案:

...
API.Quest.getQuest(1).then((quest) => {
    this.quest = new Quest(quest);
    console.log('DONE'); // never gets here
}, (err) => {
    console.log('ERR', err);
});

类:

class Event {
    constructor(args, childEventClass, childEventClassName) {
        this.name = args.name;
        this.id = args.id;
        this.children = args[childEventClassName].map(eventObj => new childEventClass(eventObj));
        ...
    }

    method1() {
        console.log('Called parent method 1');
    }
}

class Quest extends Event {
    constructor(args) {
        super(args, Task, 'tasks');
        super.method2();
    }
};

class Task extends Event {
    ...
};

咕嘟咕嘟:

const babel = require('gulp-babel');
...
gulp.task('scripts', function() {
    return gulp.src([
        'js/**/*.js',
    ])
        .pipe(babel({
            presets: ['es2015']
        }))
        .pipe(concatJs('main.js'))
        .pipe(gulp.dest('build/js'));
});

编辑2:

    API.Quest.getQuest(1).then((quest) => {
        // ... 
    }, (err) => {
        console.error('REJECT ERR', err);
        // Catch rejected promises
    }).catch((err) => {
        // Catch ?
        console.error('CATCH ERR', err);
    });

0 个答案:

没有答案