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.lastError 是 extension.lastError 的別名。它們一起設定,檢查其中任何一個都可以。
擴充套件程式示例
瀏覽器相容性
載入中…
注意: 此 API 基於 Chromium 的 chrome.runtime API。本文件源自 Chromium 程式碼中的 runtime.json。