【问题标题】:Receiving errors in lawnchair callbacks在草坪椅回调中接收错误
【发布时间】:2013-01-22 12:16:58
【问题描述】:

如果我在草坪椅上调用一个方法并且它出错,我可以得到一个错误回调吗?我正在实现一个适配器,并且有一些已知的错误条件,我想将它们提供给客户端以进行处理。但我无法找出错误是如何在 API 中返回的。它们是节点样式吗? eg: callback(error, result) where error=null 在没有错误的情况下,还是别的什么?

【问题讨论】:

  • 它似乎只是抛出异常; API 未指定

标签: javascript lawnchair


【解决方案1】:

简短回答:Lawnchair 适配器的方法没有进行任何重大错误处理。如果适配器中发生任何特别糟糕的事情,客户端将收到异常。

下面是 DOM 适配器的 save 方法的代码 - 很明显,如果发生任何不好的事情,回调将不会被调用;应用程序的代码必须处理异常。

save: function (obj, callback) {
    var key = obj.key ? this.name + '.' + obj.key : this.name + '.' + this.uuid()
    // if the key is not in the index push it on
    if (this.indexer.find(key) === false) this.indexer.add(key)
    // now we kil the key and use it in the store colleciton    
    delete obj.key;
    storage.setItem(key, JSON.stringify(obj))
    obj.key = key.slice(this.name.length + 1)
    if (callback) {
        this.lambda(callback).call(this, obj)
    }
    return this
},

当然,您可以在适配器中进行内部错误处理,并将附加参数传递给回调。这样做会使您的适配器的行为与其他适配器不一致,这可能是不利的。

我建议您的适配器会像其他适配器一样抛出异常,除非可以从适配器内部的错误中恢复。

【讨论】:

  • 我所期望的。让 API 包含错误回调会很好。
  • 不会很糟糕,但我不希望它发生:太多的代码会因为这样的变化而中断。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-14
  • 2013-03-18
相关资源
最近更新 更多