Javascript Dojo要求,模块加载失败时连接到错误
当我尝试加载不存在的模块时,它失败了,出现404错误(当然)。我想处理此错误,但不知道如何连接到“错误”事件 根据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
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
引起的错误。除了搜索错误字符串以查找模块名称之外,还有什么更优雅的方法只处理模块的错误吗?