⊗jsSpPrmEx 163 of 294 menu

JavaScriptにおけるPromiseの例外処理

Promise内部で発生した例外を処理する方法を学びましょう。 このような状況が発生した場合、Promise関数の第2引数として自動的に渡される特別な拒否関数を使用してPromiseを拒否する必要があります。

let promise = new Promise(function(resolve, reject) { setTimeout(function() { ... }, 3000); });

Promise関数内では、すべてが正常に進んだ場合は resolveを、例外が発生した場合は rejectを呼び出す必要があります。

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; if (!isError) { resolve([1, 2, 3, 4, 5]); // promiseのデータ } else { reject('error in promise'); // エラーテキスト } }, 3000); });

次に、thenメソッドでは1つではなく2つの関数を引数として渡す必要があります。1つ目はPromiseが正常に処理された場合(解決された場合)に実行され、2つ目はエラーが発生した場合(拒否された場合)に実行されます。

promise.then( function(result) { console.log(result); // promiseの結果を表示 }, function(error) { console.log(error); // エラーテキストを表示 } );

通常、上記のコードは次のようによりコンパクトに記述されます。

promise.then(function(result) { console.log(result); // promiseの結果を表示 }, function(error) { console.log(error); // エラーテキストを表示 });

0から5までの乱数を生成する非同期コードを作成してください。 すべてをPromiseでラップします。Promiseは生成された数で1を割った結果をその結果として返すようにします。 ゼロ除算が発生した場合はエラーでPromiseを拒否し、それ以外のすべての場合では成功させるようにしてください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否