runtime.lastError

この値は、コールバック関数のある非同期 API でエラーメッセージを伝える時に使われます。拡張機能のコールバックベースの API を使っている時に便利です。

プロミスベースの API を使っている時にはこのプロパティは必要ありません。代わりにプロミスへエラーハンドラーを渡してください。

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://developer.mozilla.org/" }, logCookie);

同じ処理内容ですが、 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);

メモ: runtime.lastErrorextension.lastError のエイリアスです。 2 つはセットになっており、どちらかだけを確認すればよいです。

ブラウザーの互換性

BCD tables only load in the browser

Example extensions

メモ: この API は Chromium の chrome.runtime API に基づいています。また、このドキュメントは runtime.json における Chromium から作成されています。