runtime.lastError

Dieser Wert wird verwendet, um eine Fehlermeldung von einer asynchronen API zu melden, wenn der asynchronen API ein Callback übergeben wird. Dies ist nützlich für Erweiterungen, die die Callback-basierte Version der WebExtension-APIs verwenden.

Sie müssen diese Eigenschaft nicht überprüfen, wenn Sie die Promise-basierte Version der APIs verwenden: Geben Sie stattdessen einen Fehlerbehandler an das Promise weiter:

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

Die Eigenschaft runtime.lastError wird gesetzt, wenn eine asynchrone Funktion ein Fehlerzustand meldet, den sie an ihren Aufrufer weitergeben muss.

Wenn Sie eine asynchrone Funktion aufrufen, die möglicherweise lastError setzt, wird erwartet, dass Sie den Fehler überprüfen, wenn Sie das Ergebnis der Funktion behandeln. Wenn lastError gesetzt wurde und Sie es innerhalb der Callback-Funktion nicht überprüfen, wird ein Fehler ausgelöst.

Syntax

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

Wert

Ein Error-Objekt, das den Fehler repräsentiert. Die message-Eigenschaft ist ein string mit einer für Menschen lesbaren Beschreibung des Fehlers. Wenn lastError nicht gesetzt wurde, ist der Wert null.

Beispiele

Setzen Sie ein Cookie, indem Sie ein Callback verwenden, um das neue Cookie zu protokollieren oder einen Fehler zu melden:

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

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

Das Gleiche, aber Verwendung eines Promises zur Bearbeitung des Ergebnisses von setCookie():

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

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

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

setCookie.then(logCookie, logError);

Note: runtime.lastError ist ein Alias für extension.lastError. Sie werden zusammen gesetzt, und die Überprüfung von einem von beiden funktioniert.

Browser-Kompatibilität

BCD tables only load in the browser

Beispiel-Erweiterungen

Hinweis: Diese API basiert auf Chromiums chrome.runtime API. Diese Dokumentation ist abgeleitet von runtime.json im Chromium-Code.