如何处理网络错误,以便它们不会出现在chrome开发人员控制台中?

时间:2017-03-05 13:59:36

标签: javascript google-chrome-devtools es6-promise service-worker progressive-web-apps

我在服务工作者中运行了一些代码,用于刷新当前缓存的资源:

const RESOURCE_CACHE = 'resources-v1';
caches.open(RESOURCE_CACHE).then(function addUrlsToCache(cache) {
    return cache.addAll([
        '/resources/style.css',
        '/resources/fonts/led',
        '/resources/script.js',
        '/img/roundel-tube.png',
        '/img/roundel-dlr.png',
        '/img/roundel-overground.png',
    ]);
}).catch(function (error) {
    console.error("Failed to cache resources:", error.message);
})

要测试错误处理,我会禁用开发服务器并再次运行此客户端代码。在这种情况下,我希望看到一条错误消息:Failed to cache resources: Failed to fetch。但我实际上看到这一段代码有7条错误消息:

7 errors in developer console

这对我来说很困惑,因为我认为他们在这里使用承诺的方式会处理其他6,所以他们永远不会冒泡到控制台。我需要采取哪些不同的方式,以便控制台永远不会显示我在代码中处理的网络错误?

2 个答案:

答案 0 :(得分:1)

根据a bug @wOxOm发布的链接,我发现了a helpful comment

  

在Chrome中,您可以点击过滤器图标,然后点击"隐藏网络消息"。

虽然它比我喜欢的那么重(因为它适用于当前页面上的所有网络流量),但它似乎是实现我所期望的最佳方式适用于当前版本的Chrome。

答案 1 :(得分:0)

如果您主要担心的是:

  

当控制台是我想要处理的完全虚假错误消息时,调试事情真的很难

然后您可以使用console.clear()reference

Working Demo in JsFiddle