对不起,我正在努力解决这个问题。
基本上我有一个文件includeme.js:
require('anotherjs.js', function() {
console.log('yo, i should print before "hello"');
}
以下要求函数需要:
require('includeme.js', function() {
console.log('hello, i should be printed second after "yo"');
});
我希望在从'require'ing includeme.js回调之前评估所有includeme.js。所以我想在你好之前记录你。按原样,includeme.js将被加载,但是另外的js.js将被加载同步,同时将调用带有hello日志的回调,然后再调用anotherjs并调用yo。
有没有办法让一个回调等待JS文件被完全评估,所有需要返回?
答案 0 :(得分:0)
答案是按照他们的建议使用RequireJS。定义您需要的东西。 就我的例子而言:
require('anotherjs.js', function() {
console.log('yo, i should print before "hello"');
}
应该是:
define('anotherjs.js', function() {
[...]
return false;
}
你通常想要返回一些有意义的东西,但在我的情况下,我只是将控制器注入我的角度应用程序,所以我没有理由去定义。我的猜测是需要等待“定义”,但不会等待“需要”。这是有道理的,因为“define”通常是每个文件,并且与requireJS紧密相关,而require只是一个有用的函数。
所以,不要像我一样愚蠢,并确保定义你计划要求的一切。如果您需要准备全局变量,那么使用垫片。这在requireJS文档中都是推荐的。