gpt4 book ai didi

dojo - 如何从 dojo 插件中的 require 失败中恢复?

转载 作者:行者123 更新时间:2023-12-01 05:17:33 24 4
gpt4 key购买 nike

我有一个要求,我需要将模块列表传递给插件并让它加载模块并执行一些工作。如果我通过了一个我无法加载的模块,我应该报告一个错误并转到列表的其余部分。我被卡住了,因为我不知道如何从错误模块的 require 失败中恢复。我可以使用其他一些技术来满足这个要求吗?这是一个在没有我所有其他要求的情况下提炼问题的示例,我需要从加载 my/thing2 的失败中恢复:

define("my/thing", [], function() {
return 'thing';
});
define("my/loader", [], function() {
return {
load: function(mid, require, callback) {
console.log('inside load', arguments);

// is there some way to recover when this require fails
// or some other technique I can use here?
try {
require([mid], function(mod) {
console.log('inside require, mod=', mod);
callback(mod);
});
}
catch (error) {
// never gets here, when the require fails everything just stops
console.log(error);
callback("failed to load " + mid);
}
}
}
});

require(["my/loader!my/thing"], function(loaded) {
console.log('loaded', loaded);
});

require(["my/loader!my/thing2"], function(loaded) {
console.log('loaded', loaded);
});

最佳答案

如果您被严格要求忽略无效或故障模块并继续下一个,请使用 dojo/_base/lang::exists()在将它们扔进 require 之前陈述:

require(['/dojo/_base/lang', 'dojo/text!my/thing2'], function(lang, myThing2) {
if(lang.exists(myThing2)) {
//success
} else {
//failure
}
});

关于dojo - 如何从 dojo 插件中的 require 失败中恢复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18796997/

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