我在我的项目中使用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);
});