我喜欢保持代码模块化,所以我把这种代码放在一个单独的文件中(overrides/extra.js
):
import Ember from 'ember';
Ember.RSVP.configure('onerror', function(error) {
....
});
export default null;
这只有配置Ember.RSVP
的副作用,但不会导出任何有价值的东西。然后我会在app.js
中导入它:
import dummy from './overrides/extra';
这是接受的做法吗?
答案 0 :(得分:5)
如果您的模块不需要导出任何数据,则接受,但如果不需要,则无需从模块导出任何内容:
import Ember from 'ember';
Ember.RSVP.configure('onerror', function(error) {
....
});
<强> app.js:强>
import './overrides/extra';
答案 1 :(得分:2)
我通常导出一个初始化函数:
我不知道Ember及其初始化但是它的外观如下:
import Ember from 'ember';
export default function initialize(){
return new Promise(function(ok, nok){
try { // or any other kind of failure detection
Ember.RSVP.configure('onerror', function(error) {
ok();
});
... you may do other initializations here
ok();
} catch (e) {
nok(e);
}
});
}
在通话代码
中import initEmber from './yourFile.js';
initEmber()
.then(function(){
... here you know Ember is ready
})
.catch(function(){
... damn it!
});
请注意,如果Ember初始化是同步的并且可能不会失败,那么@RGraham的答案可能会更适合您。