Dojo AMD可以使用' undefined'解决不存在的模块而不是失败?

时间:2014-08-28 08:42:59

标签: javascript dojo amd

我想加载一个可能的模块。

Evil    requires            requires
BlackBox --------> myModule --------> mayExist
  • 如果mayExist不存在,我不希望加载myModule失败。我想在回调变量中使用nullundefined值。

  • 当AMD加载器将myModule返回BlackBox时,我需要知道我是否可以依赖mayExist。我真的不能首先加载myModule,然后启动mayExist的异步请求,然后处理可能的错误。那是因为那个黑盒子不会等到做它邪恶的事情。

是否有一些可靠的方法在define的配置对象中指定,如果不存在依赖项,我不希望发生一般性故障?

1 个答案:

答案 0 :(得分:1)

为什么不让你的框架用户决定,或留下一个空的,有效的存根以供你的用户覆盖?

假设这不是一个选项,你可以尝试内联 - require - 它,一个... ...

define([... "require", ...],
...
postCreate: function() {
    this.inherited(arguments);
    try {
        require(["my/custom/Thing"], lang.hitch(this, function(Thing) {
            this.thing = new Thing();
        }));
    catch (e) {
        // do something else (or not).
    }
}
...