gpt4 book ai didi

javascript - 如何处理 requireJs 超时错误?

转载 作者:数据小太阳 更新时间:2023-10-29 05:06:01 26 4
gpt4 key购买 nike

我正在使用 require.js 作为我的加载框架编写一个移动混合应用程序。我遇到加载错误问题。我想要做的是在设备离线时设置一个后备解决方案,我无法下载我需要在屏幕上显示 map 的 google maps API 脚本。我得到的只是

Uncaught Error: Load timeout for modules: async!http://maps.googleapis.com/maps/api/js?sensor=true

但我无法捕获此错误并提供替代实现。这是我的 gmaps 模块定义

define('gmaps', ['async!http://maps.googleapis.com/maps/api/js?sensor=true'],function(){
return window.google.maps;
});

我能做什么?

编辑

感谢您的帮助,我设法找到了可能的解决方案。我已经设置了这样的要求

require.config({
paths: {
gmaps: ['http://maps.googleapis.com/maps/api/js?sensor=true', 'lib/dummymaps']
}
}

dummymaps 只是一个简单的模块:

define({
dummy: true
});

然后在我的“父”模块中我做:

define(["gmaps"],function(gmaps){
...
if(typeof gmaps.dummy != 'undefined' && gmaps.dummy == true){
// use a local image as map
} else {
// initialize google maps canvas
}
});

你认为这是一个好的解决方案吗?

编辑 2:

请原谅,它不适用于此代码。它总是回退到替代实现,因为 gmaps 需要使用异步插件才能完全加载,而我无法让它与插件一起工作。

最佳答案

您可以通过以下方式捕获错误:

requirejs.onError = function (err) {
if (err.requireType === 'timeout') {
alert("error: "+err);
}
else {
throw err;
}
};

希望这对您有所帮助!

关于javascript - 如何处理 requireJs 超时错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18332748/

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