Dojo需要,在模块加载失败时连接到错误

时间:2012-05-04 12:54:16

标签: javascript error-handling dojo requirejs

当我尝试加载不存在的模块时,它失败并出现404错误(当然)。我想处理此错误,但不知道如何连接到“错误”事件。

根据Dojo文档,我应该能够使用its micro event api

此代码不起作用。

var handle = require.on('error', function( error )
                 {
                     alert('Finally error')
                 });

require(['nonexistent/module'], function ( m )
{
     alert('Module was loaded correctly')           
});

Dojo版本是1.7.1,浏览器最新Chrome。

2 个答案:

答案 0 :(得分:5)

关于这个的文档有点好奇。我可以在失败的xhr需要之后的短暂超时(dojoConfig.waitSeconds)之后触发'error'事件,但仅在异步模式下,并且只有dev的构建Dojo。

为什么呢?好吧,只有异步模式才会引发事件,看起来CDN构建是用dojo-timeout-api == 0构建的。

您可以使用自己的自定义(SDK)版本的Dojo吗?

@mschr - 如果您使用Dojo(每晚)而不是Dojo 1.7.2,您的jsfiddle示例将起作用 - 与上述原因相同。

答案 1 :(得分:1)

尝试使用调试集

<script src="{{baseUrl}}/dojo/dojo.js" data-dojo-config="async:true, debug: true, debugAtAllCost:true"></script>

编辑;没有这样的运气 - 似乎文档在这里实现了......

为了找到一个解决方案而创造了一个小提琴,概念很好,很乐意自己使用

http://jsfiddle.net/seeds/h6bXQ/