Javascript 处理chrome.runtime.lastError的最佳方法
大家都知道,Javascript 处理chrome.runtime.lastError的最佳方法,javascript,google-chrome,google-chrome-extension,error-handling,Javascript,Google Chrome,Google Chrome Extension,Error Handling,大家都知道,lastError是API中的一个全局变量或属性,用于确定chrome API调用执行期间是否发生了错误 它仅在出现错误时定义,如果API调用正常,则不会定义它。该错误可能由多种原因触发,例如,由于缺少或错误的参数类型导致API调用错误,或者可能由用户交互引起,例如,用户通过按“取消”按钮拒绝权限授予 Chrome统一了它的错误处理,它使用这个变量在API中报告错误,而不是返回错误参数。由于它的API的异步性质,Chrome会进行额外的检查,以验证是否在扩展代码的回调函数中检查/处理
lastError
是API中的一个全局变量或属性,用于确定chrome API调用执行期间是否发生了错误
它仅在出现错误时定义,如果API调用正常,则不会定义它。该错误可能由多种原因触发,例如,由于缺少或错误的参数类型导致API调用错误,或者可能由用户交互引起,例如,用户通过按“取消”按钮拒绝权限授予
Chrome统一了它的错误处理,它使用这个变量在API中报告错误,而不是返回错误参数。由于它的API的异步性质,Chrome会进行额外的检查,以验证是否在扩展代码的回调函数中检查/处理了Chrome.runtime.lastError
,否则会抛出著名的Unchecked runtime.lastError
您可以通过检查chrome.runtime.lastError.message来快速获取错误消息,并将其显示给用户,所有这些对于大多数用例来说都是非常好的,但是如果这是我的情况,我不会写这个问题
那么,当您需要基于错误结果实现一些额外的代码逻辑时会发生什么呢。让我们举个例子,为了问题的简单性,我将只关注可能发生的两种结果/错误:
需要用户交互。
在使用错误参数值进行API调用时抛出,在这种情况下interactive=false
用户未批准访问。
在用户关闭身份验证窗口时发生您认为chrome开发团队应该实现什么:
chrome.runtime.lastError.code
?消息将始终是英文的,因为它是一个内部API。@wOxxOm知道这一点很好,但是依赖消息是否安全,因为它们没有在文档中定义,我想它们可能会突然发生变化。嗯,没有别的办法了。消息没有更改。它们可以更改,但直到现在这种情况才发生,除非消息中有输入错误或其他明显错误。我不知道答案,但您的介绍回答了我关于未检查运行时错误的问题:)