【问题标题】:Can I reject a dojo/Deferred without getting an error in the browser console?我可以拒绝 dojo/Deferred 而不会在浏览器控制台中出现错误吗?
【发布时间】:2016-10-21 02:53:58
【问题描述】:

我希望能够拒绝 dojo/Deferred 对象,而不会在浏览器控制台中显示为错误。这些拒绝中的许多都不是实际错误。它们只是拒绝,是没有遵循其主要执行路径但也没有最终导致灾难的流程的一部分。我更担心这些虚假的错误报告,因为我捕获了错误日志并将它们发送到服务器以进行可能的进一步分析(大型产品处于 beta 测试阶段)。

有人做过吗?

// assuming we're running in a Dojo environment

require(["dojo/Deferred"], 
function(Deferred) {
    var d = new Deferred();
    d.reject("I don't want to see this on the console !");
});

PS:诸如“通过复制/更改 Dojo 的开源代码中的一个来编写自己的 Deferred 类”之类的答案不会是我所期望的那种。 ;)

【问题讨论】:

  • 是的,你可以,但你必须发布一些代码。
  • 艰难的讨价还价。 :D 好的,它来了...

标签: javascript logging dojo promise deferred


【解决方案1】:

当然,您只需要在某处.catch() 拒绝(如果您愿意,可以忽略它们)。同步thrown 错误也是如此——如果您不将代码包装在try/catch 中,异常将显示在控制台中。您需要明确地这样做,否则它将被视为意外错误/拒绝并被记录下来。

【讨论】:

  • 好吧,你让我意识到只有那些不需要错误处理程序的 Deferred 才会出现。我现在觉得很傻。谢谢你:)
猜你喜欢
  • 2021-09-15
  • 2018-10-04
  • 1970-01-01
  • 2021-11-09
  • 1970-01-01
  • 2023-04-06
  • 2016-10-23
  • 2021-08-26
  • 2018-12-11
相关资源
最近更新 更多