今回は「reject」を使ったコード、その1です。

コード1

 「then」の第2引数を使って、処理を分岐する例です。

ソースコード)「then」の第2引数で処理を分岐

new Promise(function(resolve, reject) {
    setTimeout(function() {
        reject();
    }, 1000);
})
.then(
    function() {
        console.log('解決');
    },
    function() {
        console.log('拒否');
    }
);

    

出力)実行結果

拒否

    

コード2

 「catch」を使って分岐する例です。

ソースコード)「catch」を使って分岐

new Promise(function(resolve, reject) {
    setTimeout(function() {
        reject();
    }, 1000);
})
.then(function() {
    console.log('解決1');
})
.then(function() {
    console.log('解決2');
})
.catch(function() {
    console.log('キャッチ');
});

    

出力)実行結果

キャッチ

    

コード3

 「then」による分岐と「catch」による分岐を混ぜた例です。

ソースコード)「then」と「catch」を混ぜる

new Promise(function(resolve, reject) {
    setTimeout(function() {
        reject();
    }, 1000);
})
.then(
    function() { console.log('解決1') },
    function() { console.log('拒否1') }
)
.then(
    function() { console.log('解決2') },
    function() { console.log('拒否2') }
)
.catch(function() {
    console.log('キャッチ')
});

    

出力)実行結果

拒否1
解決2

    

コード4

 「reject」で値を送る例です。

ソースコード)「reject」で値を送る

new Promise(function(resolve, reject) {
    setTimeout(function() {
        reject('エラー');
    }, 1000);
})
.then(
    function(arg) {
        console.log('解決', arg);
    },
    function(arg) {
        console.log('拒否', arg);
    }
);

    

出力)実行結果

拒否 エラー

    

コラム:3つの状態

 「Promise」には3つの状態があります。初期状態の「待機」(pending)と、処理が成功して完了した「履行」(fulfilled)、処理が失敗した「拒否」(rejected)です。

 待機状態の「Promise」は、値を持った履行状態か、エラーの理由を持った拒否状態に変わります。

 「Promise」が待機以外の状態になった場合は、「決定」(settled)と呼ばれます。

 これらの状態遷移を知らなくてもプログラムは書けますが、覚えておくとよいです。

作成:2022/07/23  更新:2022/07/23  [Permalink]

クロクロ・ショップ
特殊な技術書多数あります
レトロ風RPG フルスクラッチ開発 全コード
レトロゲーム風RPGの全コードを掲載して解説した本
HTML5とJavaScriptで作る 落ち物パズルゲーム 全コード
『テトリス』や『ぷよぷよ』に類似した落ち物パズルゲームの全コードを掲載して解説した本
JavaScriptでリバーシゲームをつくろう
ライブラリを使わずに全コードを書いて、リバーシゲームを作るまでを徹底解説
ワールドマップ自動生成読本
二次元ゲームのワールドマップを自動生成するための本
レトロゲームファクトリー
過去のゲームを最新機に移植する会社のお仕事小説(新潮社)
顔貌売人 ハッカー探偵 鹿敷堂桂馬
プログラマーが探偵役のエンタメ・ミステリー第2弾 最先端の情報犯罪に安藤と鹿敷堂が挑みます(文藝春秋)
裏切りのプログラム ハッカー探偵 鹿敷堂桂馬
プログラマー鹿敷堂桂馬が、女性社長の安藤裕美と共に、IT業界で起きた事件に挑む。2016年の松本清張賞の最終候補作(文藝春秋)
×