gpt4 book ai didi

javascript - RequireJS:如何处理传递依赖项失败?

转载 作者:行者123 更新时间:2023-11-30 17:06:08 26 4
gpt4 key购买 nike

我使用的是 RequireJS 2.1.15,我无法获取传递给要执行的库的 errback。这是一个说明我的问题的小样本。

define("parent", ["missing"], function(){
return new Parent();
});

require(["parent"], function(parent){
alert("parent");
}, function(err){
alert("err");
});

(相应的 fiddle 在:http://jsfiddle.net/605w0ex5/2/)

当我运行这段代码时,require() 的成功或错误函数实际上都没有被调用,但是 RequireJS 打印了一条控制台消息说 Error: Script error for: missing

我的问题是我的 require() 调用似乎处于不确定状态。它既不成功也不失败,即使它明确依赖的模块之一永远不会被加载。并且永远不会加载父级,因为无法加载所依赖的模块。

问题是当我的 require() 调用无法满足时,我确实希望收到通知。 我怎样才能让 RequireJS 真正调用我的 errback?*

我在 Chrome 39 和 RequireJS 2.1.15 上遇到了这个问题。

最佳答案

我准备将其称为 RequireJS 中的错误,因为 a) 我们在 FF 中获得了预期的行为,并且 b) 如果我们执行以下操作,我们也将获得预期的行为。

我所做的是获取您的代码并创建一个 HTML 页面:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8"/>
<script type="text/javascript" src="js/require.js"></script>
</head>
<body>
<script>
require.config({
baseUrl: "js"
});
require(["parent"], function(parent){
alert("parent");
}, function(err){
console.log(err);
alert("err");
});
</script>
</body>
</html>

js 子目录包含 RequireJS 和一个名为 parent.js 的文件,其中包含:

define(["missing"], function(){

function Parent () {}
return new Parent();

});

使用此设置,将按预期调用 errback。我还可以将模块的名称添加到 define 中,它也适用于此。但是如果 parent 模块是像你那样创建的,那么 errback 永远不会被调用。

另一件让我愿意将其称为错误的事情是,在我的一个大型应用程序中,我依赖错误反馈来正确加载模块。该应用程序在多个操作系统的 FF、IE、Chrome 的多个版本中进行了测试,并且可以正常工作。 (我使用它未优化和使用 r.js 优化。)唯一我不做的事情是你的代码做的是在单个文件之外定义一个模块.

关于javascript - RequireJS:如何处理传递依赖项失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27985772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com