当需要文件的要求已完全完成评估时回调

时间:2014-03-10 07:34:41

标签: requirejs

对不起,我正在努力解决这个问题。

基本上我有一个文件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文件被完全评估,所有需要返回?

1 个答案:

答案 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文档中都是推荐的。