JavaScriptにおけるPromiseの例外処理

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

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

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

javascriptlet 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つ目はエラーが発生した場合(拒否された場合)に実行されます。

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

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

javascriptpromise.then(function(result) {
  console.log(result); // promiseの結果を表示
}, function(error) {
  console.log(error);  // エラーテキストを表示
});
Задание 1

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