すべてのイベント処理を途中で終わらせる方法(プログラム中断方法)

お世話になっております。

表題の通りですが、実行中の処理をすべて中断する方法はありますでしょうか。

(function () {
    "use strict";

    kintone.events.on('app.record.create.show', function(event) {
        //取得ボタン
        const element = document.createElement('button');
        element.id='get_studentInfo';
        element.innerText ='取得';
        element.onclick = function () {

                return kintone.api(
                    kintone.api.url('/k/v1/records.json', true), 'GET', paramLatestId,
                    ).then(function(resp1) {
                        if (*** === 0){
               
                        }else{
                            //ここにきたら、これ以降すべての処理を中断したい
                        };
                    return kintone.api(kintone.api.url('/k/v1/records.json', true),'GET',paramFlightLog);

                    }).then(function(resp2){

                    });
                };
        });
        kintone.app.record.getSpaceElement('get_studentInfo').appendChild(element);

        return kintone.api(        //ユーザーの所属組織エクスポート API(JSON)
            kintone.api.url('/v1/user/organizations', true), // pathOrUrl
            'GET', // method
            {code:kintone.getLoginUser()['code']}, // params
        ).then(function(resp) { // 成功時のcallback

        });

})();

 

preventDefault, stopPropagation, stopImmediatePropagationあたりを使うと思い試しましたが、「〇〇.stopPropagation is not a function」というエラーが出てうまくいきませんでした。

「〇〇」に入るオブジェクトが間違っているのか、そもそもこの方法ではないのかわかっていない状況です。

Javascript初心者のため関連キーワードだけでも教えていただけると幸いです。

よろしくお願いいたします。

Tyler_Kyabさん

お世話になっております。

element.onclick内の後続処理を行わないということであれば、else節の中でreturn;と記述すればよいかと思います。

キーワードとしては「Early Return」などで検索するとよいかと思います。

ご回答ありがとうございます。

returnを追加したところ、どうやらその次のPromise処理に移っているようで、そこで以下のようなエラーが出ます。

...

}).then(function(resp2){

while(resp2.records[i]){     //ここで「Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'records')」

}

}

前述のif…else節で取得する予定であったrest API呼び出しのパラメーターを取得できていないからだと思うのですが、これを回避するには専用のエラー処理を記述するしか方法はないのでしょうか。

出来れば、レコード追加イベントも含めてすべての処理を終了させたいです。

よろしくお願いします。

Tyler_Kyabさん

お世話になっております。

申し訳ございません。コードを読み違えておりました。

}).then(function(resp2){ に飛ばしたくないということであれば、elseでErrorオブジェクトをthrowするとよいかと思います。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Error

また、.then()メソッドチェーンに連ねて、.catch()も記述しておけばコンソールエラーが出なくなるかと思います。
https://ja.javascript.info/promise-error-handling
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise/catch

then()メソッドの.catch()の存在、すっかり忘れていました。

記述したところエラーは出ず解決しました。ありがとうございます。

Errorオブジェクトのthrowについても、なんとなくですが理解することができました。

お忙しいところありがとうございました。

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。