Requirejs 加载模块(如果存在)

Requirejs 加载模块(如果存在),requirejs,Requirejs,我测试了下面的代码,但它不起作用。我刚刚测试了模块是否已加载 var Url=window.location.href; var decomposedulr=Url.split(“/”); console.log(decomposedulr); var Getter=decomposedulr[decomposedulr.length-1]; //问题定义为模块是否加载,而不是模块是否存在 if(require.defined(“Module/”+Getter[0]+“/”+Getter[1]

我测试了下面的代码,但它不起作用。我刚刚测试了模块是否已加载

var Url=window.location.href;
var decomposedulr=Url.split(“/”);
console.log(decomposedulr);
var Getter=decomposedulr[decomposedulr.length-1];
//问题定义为模块是否加载,而不是模块是否存在
if(require.defined(“Module/”+Getter[0]+“/”+Getter[1]+“/”+Getter[1]”){
requirejs([“模块/”+Getter[0]+“/”+Getter[1]+“/”+Getter[1]],函数(模块){
Module.Main();
});
}
“是否存在模块?“这是一个模棱两可的问题。您发现
require.define
检查模块是否已加载,但您需要检查使用某个模块名称调用
require
是否实际加载模块RequireJS无法在加载模块之前执行此检查。

您可以做的只是尝试加载模块,并提供一个errback来记录模块不可用的事实:

require(["someModule"], function (someModule) {
  // If we get here the module exists. Use it.
}, 
function (err) {
  // This is the errback. We get here if the module could not be loaded.
  // Perform whatever alternative is needed.
});
“模块存在吗?”是一个模棱两可的问题。您发现
require.define
检查模块是否已加载,但您需要检查使用某个模块名称调用
require
是否实际加载模块RequireJS无法在加载模块之前执行此检查。

您可以做的只是尝试加载模块,并提供一个errback来记录模块不可用的事实:

require(["someModule"], function (someModule) {
  // If we get here the module exists. Use it.
}, 
function (err) {
  // This is the errback. We get here if the module could not be loaded.
  // Perform whatever alternative is needed.
});

很好,可以在requirejs中使用承诺?requirejs本身不使用承诺。过去,当我不得不在RequireJS中使用promise时,我将
require
调用放入
newpromise(函数(resolve,reject){
这样就得到了承诺。有一个是与承诺一起工作的,是由与RequireJS相同的作者制作的,但我没有使用它。很好,可以将承诺与RequireJS一起使用?RequireJS本身不使用承诺。过去,当我不得不将承诺与RequireJS一起使用时,我将
require
调用放入
新承诺中(函数(resolve,reject){
并以这种方式获得承诺。有一个函数与承诺一起工作,由与RequireJS相同的作者创建,但我没有使用它。