runtime.lastError

当异步 API 提供回调时,此值用于报告异步 API 的错误消息。这对于使用 WebExtension API 基于回调版本的扩展很有用。

如果您使用的是 API 的基于 Promise 的版本,则无需检查此属性:而是将错误处理程序传递给 Promise。

js
const gettingCookies = browser.cookies.getAll();
gettingCookies.then(onGot, onError);

当异步函数存在需要向其调用方报告的错误条件时,将设置runtime.lastError属性。

如果您调用可能设置lastError的异步函数,则应在处理函数结果时检查错误。如果已设置lastError并且您在回调函数中未检查它,则会引发错误。

语法

js
let myError = browser.runtime.lastError;  // null or Error object

一个表示错误的Error对象。 message属性是一个包含错误的人类可读描述的字符串。如果未设置lastError,则值为null

示例

使用回调设置 Cookie,以记录新 Cookie 或报告错误

js
function logCookie(c) {
  if (browser.runtime.lastError) {
    console.error(browser.runtime.lastError);
  } else {
    console.log(c);
  }
}

browser.cookies.set({ url: "https://mdn.org.cn/" }, logCookie);

相同,但使用 Promise 处理setCookie()的结果

js
function logCookie(c) {
  console.log(c);
}

function logError(e) {
  console.error(e);
}

const setCookie = browser.cookies.set({
  url: "https://mdn.org.cn/",
});

setCookie.then(logCookie, logError);

注意:runtime.lastErrorextension.lastError的别名。它们一起设置,检查任意一个都可以。

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

扩展示例

注意:此 API 基于 Chromium 的chrome.runtime API。此文档来自 Chromium 代码中的runtime.json