We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

catch() メソッドは Promise を返します。失敗した場合のみ扱います。 Promise.prototype.then(undefined, onRejected) が呼ばれたときと同様に振る舞います。

構文

p.catch(onRejected);

p.catch(function(reason) {
   // rejection
});

引数

onRejected
Promise が失敗した時に呼ばれる Function 。この関数は一つの引数を持ちます。
reason
reject の理由。
catch()  メソッドで返される Promise は、onRejected がエラーを投げた場合、または返される Promise それ自体が reject の場合は、reject となります。
それ以外の場合は、resolve となります。

返値

Promise

説明

catch メソッドはプロミス構成でエラーを扱うときに役に立ちます。

catch メソッドを使う

var p1 = new Promise(function(resolve, reject) {
  resolve('Success');
});

p1.then(function(value) {
  console.log(value); // "Success!"
  throw 'oh, no!';
}).catch(function(e) {
  console.log(e); // "oh, no!"
}).then(function(){
  console.log('after a catch the chain is restored');
}, function () {
  console.log('Not fired due to the catch');
});

// 以下は、上記と同様に動作します
p1.then(function(value) {
  console.log(value); // "Success!"
  return Promise.reject('oh, no!');
}).catch(function(e) {
  console.log(e); // "oh, no!"
}).then(function(){
  console.log('after a catch the chain is restored');
}, function () {
  console.log('Not fired due to the catch');
});

仕様

仕様 ステータス コメント
ECMAScript 2015 (6th Edition, ECMA-262)
Promise.prototype.catch の定義
標準 ECMA標準における初期定義
ECMAScript Latest Draft (ECMA-262)
Promise.prototype.catch の定義
ドラフト  

ブラウザ実装状況

No compatibility data found. Please contribute data for "javascript/promise" (depth: Promise.prototype.catch) to the MDN compatibility data repository.

関連情報

ドキュメントのタグと貢献者

このページの貢献者: DriftwoodJP, akiomik, shide55
最終更新者: DriftwoodJP,