RequireJS:嵌套的需要调用

use*_*352 5 javascript requirejs

我有一个场景,我有嵌套的require()调用来加载不同的模块.

有没有办法让我确保在调用回调函数之前完全加载所有require()调用及其所有子require()调用?

有没有办法指定require()调用是同步的?

function someFunction(callback) {

  //top level require
  require([...], function(...) {

     //nested require
     require([...], function(...) {
     });

     //nested require
     require([...], function(...) {
     });

  });

  callback();
};
Run Code Online (Sandbox Code Playgroud)

nek*_*man 3

您需要执行callback最后一个require(...)函数:

function someFunction(callback) {
   require(['somemodule'], function(someModule) {
     // do stuff with someModule...

     // execute callback
     callback(); 
   });
}
Run Code Online (Sandbox Code Playgroud)

您还可以做的是使用 Define 函数指定您的依赖项。

例子:

define('somemodule', ['somedependency'], function(someDependency) {
   // return somemodule
   return {
     someProperty: someDependency.getProperty();
   };
});

function someFunction(callBack) {
   var someModule = require('somemodule');   
   var foo = someModule.someProperty;

   return callBack(foo);
}
Run Code Online (Sandbox Code Playgroud)