我正在使用 JSPM/SystemJS/BabelJS 将一些代码转换为 ES6 语法。
我有以下内容:
// main.js:
console.log('foo');
import * as Backbone from 'backbone';
import * as Cocktail from 'backbone.cocktail';
Cocktail.patch(Backbone);
console.log('bar');
import Application from 'background/application';
console.log('application:', Application);
// application.js:
console.log('baz');
export default {};
此代码输出baz
foo
bar
application: {}
.
我想输出:foo
bar
baz
application: {}
这样Cocktail.patch
在任何代码之前运行application.js
我可以通过将我的代码重写为:
// main.js:
console.log('foo');
import * as Backbone from 'backbone';
import * as Cocktail from 'backbone.cocktail';
Cocktail.patch(Backbone);
console.log('bar');
System.import('background/application').then(function(Application){
console.log('application:', Application.default);
});
// application.js:
console.log('baz');
export default {};
但是,这感觉令人费解且不正确。它显式地利用 SystemJS 而不是 ES6 导入/导出语法。application.js
在使用 ES6 语法解析之前如何等待?