我有一个获取某些文本数据的通用函数,它使用$ .ajax尝试从多个可能的位置获取此数据。该函数包含一个promise,该promise将被返回,并以各种方式用于以后的代码中,其中包括将这些结果中的几个推入数组并用Promise.all
处理它们。
除了在某些项目上出现红色开发者控制台错误的事实外,一切似乎都很顺利-尽管我使用的是.fail函数,该函数应该可以捕获这些错误并防止红色文本出现在控制台中
function getDataText(url, type, locationKey, dataName){
return new Promise((resolve, reject) => {
$.ajax({
url : url,
dataType : type,
timeout: 500
}).fail((err) => {
console.log(`getDataText(): REJECTED!\t${url}`);
reject(new Error(`Could not get '${url}' from location ${locationKey}`));
}).done((data) => {
console.log(`getDataText(): RESOLVED!\t${url}`);
resolve({ data : data, path : url });
});
});
}
它的作用是先记录红色错误,然后在下一行说我“已拒绝”消息。我期望的是根本没有红色文本,因为我应该抓住了它们-我认为我的“拒绝”消息应该就足够了。
这是正常现象,还是我缺少什么?
我还将添加:并非所有拒绝的物品都这样!恰好发生在这两个方面:
有趣的是,没有红色错误的被拒绝的项目都是位于其他计算机上并以“ http://[network IP地址]”开头的文件。我想知道是否有什么简单的方法可以帮助捕获前两个...