17

我正在寻找一种优雅的方法来找出导致超时错误(即无法加载依赖项)的脚本的完整路径。

requirejs.onError = function (err) {

   // this works:
   var script_that_failed_loading = err.originalError.target.src

   // now I want:
   var the_script_responsible_for_this = <???>

};
4

2 回答 2

8

使用加载器级别的错误返回

require(["foo","bar"],function(foo,bar){
  // perform some action
},function(error){
  // handle error here
});

请注意,失败的模块名称在error.requireModules. 这样的错误反馈既可以用于加载器,也可以用于模块。如果您有多个资源的后备路径,请使用path fallbacks

根据我的个人经验,我谦虚地不同意ddotsenko。我们在生产环境中使用 RequireJS。如果设置正确,RJS 非常可靠。

于 2013-05-18T12:14:19.173 回答
2

RequireJS 选择了一种有点不可靠的、不连贯的机制来捕获错误。它使用计时器来查看它是否期望得到它。其他一些 AMD 加载程序使用其他更直接的机制来检测加载期间的错误情况。

我首选的 AMD 加载程序是CurlJS,它通过硬连线来捕获加载/解析错误。

由于架构选择,它更可靠地检测错误条件,您可以将错误处理程序直接附加到每个require调用。如果诸如错误捕获之类的东西对您很重要,我强烈建议您查看 CurlJS。

于 2013-02-05T18:52:51.533 回答