我正在尝试使用 Almond.js 和 Require.js 优化器来制作一个可以在没有 Require.js 的情况下使用的独立文件。我已经能够成功编译该文件,并且所有代码都运行了,但是有一个问题:代码以错误的顺序执行。
假设我的主文件(include=
传递给优化器的选项中的那个)具有以下内容:
console.log('outside');
require(['someFile'], function(someModule) {
console.log('inside');
window.foo = someModule.rightValue;
});
然后在我的HTML中我有:
<script src="myCompiledFile.js"></script>
<script>
console.log('out in the HTML');
</script>
由于我使用的是 almond.js 和一个编译文件(因此没有文件加载正在进行),我希望得到输出:
outside
inside
out in the HTML
然而,事实证明仍然存在一些异步性,因为我实际看到的是:
outside
out in the HTML
inside
如果我尝试window.foo
从 HTML 检查它不存在。
所以,我的问题是,我怎样才能让代码更像一个普通/同步的 JS 文件,在将内容传递到下一个script
块之前首先运行它的所有代码?我不能准确地告诉我的用户“将所有代码包装在 window.setTimeout 中”。