8

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

根据 Dojo doc,我应该可以使用它的 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。

4

2 回答 2

5

关于这个的文档有点好奇。在 xhr 要求失败后,我可以在短暂的超时 (dojoConfig.waitSeconds) 后触发“错误”事件,但只能在异步模式下,并且只能使用 Dojo 的开发版本。

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

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

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

于 2012-05-05T00:02:22.477 回答
1

用调试集试试

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

编辑; 没有这样的运气 - 似乎文档在这里实施之前..

为可能找到解决方案而创建了一个小提琴,概念很好,我自己会喜欢使用它

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

于 2012-05-04T16:11:38.370 回答