Javascript Dojo要求,模块加载失败时连接到错误

Javascript Dojo要求,模块加载失败时连接到错误,javascript,error-handling,dojo,requirejs,Javascript,Error Handling,Dojo,Requirejs,当我尝试加载不存在的模块时,它失败了,出现404错误(当然)。我想处理此错误,但不知道如何连接到“错误”事件 根据Dojo文档,我应该能够使用 此代码不起作用 var handle = require.on('error', function( error ) { alert('Finally error') }); require(['nonexistent/module'], fu

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

根据Dojo文档,我应该能够使用

此代码不起作用

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的最新版本。

使用调试集进行尝试

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

编辑;没有这样的运气——看来文档在这里的实现是领先的

创建一个小提琴的目的可能是找到一个解决方案,概念是好的,我会喜欢使用这个自己


关于这一点的文档有点奇怪。xhr require失败后,我可以在短时间超时(dojoConfig.waitSeconds)后触发“error”事件,但仅在异步模式下,并且仅在Dojo的开发版本中

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

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


@mschr-如果您使用Dojo(每晚)而不是Dojo 1.7.2,那么您的JSFIDLE示例可以工作-原因与上面相同。

我正在异步模式下使用Dojo的sdk版本。将dojoConfig.waitSeconds设置为某个值最终会引发错误。将其设置为0不起作用。也适用于1.7.1。谢谢。太棒了,我不知道谷歌会漏掉这些好东西:)这篇文章实际上让我实现了一个长期寻求的功能!当我试图在中发布加载模块的进度时,监视加载程序给我带来了压力。trickA
需要这个事件api。在
上,在该时间点之后的每个错误事件都会调用这样的处理程序,对吗?我使用了
var h=require.on('error',function(err){h.remove();…etc}
,但这只会处理第一个错误事件,而不一定是由
不存在的/module
引起的错误。除了搜索错误字符串以查找模块名称之外,还有什么更优雅的方法只处理模块的错误吗?