runtime.lastError

此值用於在非同步 API 提供回撥函式時,報告來自該非同步 API 的錯誤訊息。這對於使用基於回撥的 WebExtension API 的擴充套件非常有用。

如果您使用的是基於 Promise 的 API,則無需檢查此屬性:而是將錯誤處理程式傳遞給 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 屬性是一個 string,包含對錯誤的易於理解的描述。如果 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.club.tw/" }, logCookie);

相同,但使用 Promise 來處理 setCookie() 的結果

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

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

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

setCookie.then(logCookie, logError);

注意: runtime.lastErrorextension.lastError 的別名。它們一起設定,檢查其中任何一個都可以。

擴充套件程式示例

瀏覽器相容性

注意: 此 API 基於 Chromium 的 chrome.runtime API。本文件源自 Chromium 程式碼中的 runtime.json