Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

Promise.reject()

BaselineWidely 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

構文

js
Promise.reject(reason)

引数

reason

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

返値

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

解説

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

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

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

静的な Promise.reject() メソッドの使用

js
Promise.reject(new Error("fail")).then(  () => {    // not called  },  (error) => {    console.error(error); // Stacktrace  },);

プロミスの拒否

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

js
const p = Promise.resolve(1);const rejected = Promise.reject(p);console.log(rejected === p); // falserejected.catch((v) => {  console.log(v === p); // true});

Promise 以外のコンストラクターに対する reject() の呼び出し

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

js
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"

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-promise.reject

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp