A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise/reject below:

Promise.reject() - JavaScript | MDN

Promise.reject()

Baseline Widely available

Promise.reject() は静的メソッドで、引数で与えられた理由で拒否された Promise オブジェクトを返します。

試してみましょう
function resolved(result) {
  console.log("Resolved");
}

function rejected(result) {
  console.error(result);
}

Promise.reject(new Error("fail")).then(resolved, rejected);
// Expected output: Error: fail
構文 引数
reason

この Promise が拒否された理由です。

返値

与えられた理由で拒否された Promise です。

解説

静的な Promise.reject 関数は拒否された Promise を返します。デバッグのために捕捉するエラーを選別したい場合は、 reason を instanceof Error にかけると良いでしょう。

Promise.reject() は汎用的であり、サブクラス化に対応しています。つまり、 Promise のサブクラスで呼び出すことができ、その結果はサブクラスの種類のプロミスになります。これを行うには、サブクラスのコンストラクターは Promise() コンストラクターと同じ呼び出し定義を実装する必要があります。これは、 resolve と reject コールバックを引数として呼び出すことができる単一の executor 関数を引数に取ります。 Promise.reject() は、本質的に new Promise((resolve, reject) => reject(reason)) の短縮形です。

Promise.resolve() とは異なり、 Promise.reject() は reason がすでに Promise であっても、常に新しい Promise オブジェクトで reason をラップします。

例 静的な Promise.reject() メソッドの使用
Promise.reject(new Error("fail")).then(
  () => {
    // not called
  },
  (error) => {
    console.error(error); // Stacktrace
  },
);
プロミスの拒否

Promise.resolve とは異なり、 Promise.reject メソッドは既存の Promise インスタンスを再利用することはありません。常に reason を包んだ新しい Promise インスタンスを返します。

const p = Promise.resolve(1);
const rejected = Promise.reject(p);
console.log(rejected === p); // false
rejected.catch((v) => {
  console.log(v === p); // true
});
Promise 以外のコンストラクターに対する reject() の呼び出し

Promise.reject() は汎用的なメソッドです。これは Promise() コンストラクターと同じ呼び出し定義を実装した任意のコンストラクターで呼び出すことができます。例えば、 console.log を reject として渡すコンストラクターで呼び出すことができます。

class NotPromise {
  constructor(executor) {
    // The "resolve" and "reject" functions behave nothing like the
    // native promise's, but Promise.reject() calls them in the same way.
    executor(
      (value) => console.log("Resolved", value),
      (reason) => console.log("Rejected", reason),
    );
  }
}

Promise.reject.call(NotPromise, "foo"); // Logs "Rejected foo"
仕様書 ブラウザーの互換性 関連情報

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4