新規投稿
フォローする

return eventをしないことの弊害

タイトルの通りコードを書いた後にreturn eventをしないことで弊害があるか、もしくは必要ではないのにreturnすることで逆に弊害があるかについて皆様のご意見をお聞かせいただけますでしょうか。

色々とカスタマイズを行っている中で、あるアプリのレコードを更新した時に別アプリに対してAPIのPUTを使い、別アプリのレコード更新だけをするJSを書くことがあります。

このようにシンプルに終わる処理の場合はコードの最後にreturn event;を書いても書かなくても動作に影響はないと思いますが、あるべき形として影響がなくてもreturn eventは書くべきか、書かないべきか、どちらでも良いかはどのように考えるのが良いでしょうか。

 

下記のスレッドでイベントをreturn eventで終わらせた場合とそうでない場合に、どのような結果になるか詳しく検証していただいた方がいました。

Return Eventの仕様?

return eventで終わらないと同じイベントハンドラを複数使っている場合には編集したeventが反映されるかどうかが変わってくるようでした。私としてはプラグイン追加等で同じイベントハンドラの処理を後々複数追加することになった場合に正常に動作しない可能性があるなら、予め常にreturn eventで終わらせておく方が良いと思っています。しかし、その時はその時にになったら追加すれば良いという考え方もあると思いますので、皆様ならどう考えるかを教えていただけませんでしょうか。

0

2件のコメント

Avatar
rex0220

私は、「お願いだから return event; してくれ派」です。

return event; が無いと、忘れたころにトラブルになりがちです。
将来の自分や引き継いだ担当者に罠や時限爆弾を仕掛けているようなものです。
プラグインをバージョンアップした場合に、動かなくなってトラブルとまったく関係のないプラグインが疑われたりもします。

ご参考 kintone イベント処理の return 文について

あと「このようにシンプルに終わる処理の場合はコードの最後にreturn event;を書いても書かなくても動作に影響はないと思いますが」は間違いです。

レコード保存系のイベントは、「kintone.Promiseオブジェクトをreturnすると、非同期処理の完了を待って次の処理を開始します。」となっています。
retune event; が無いと、非同期処理の完了を待たずに画面遷移しますので、タイミングや処理内容によって REST API が実行されない・またはエラーになるケースがあり得ます。

2
Avatar
mackey

rex0220様

コメントありがとうございます。

やはり将来のことを考えるとreturn event;しておいた方が良いですよね。どこかだけ抜けているとエラー調査に無駄に時間かかることになりそうですし、書かないのを良しとする積極的な理由はあまり思いつかないです。rex0220様のQiitaの記事もケースごとにどういう結果になるかよくわかり、大変参考になりました。調べものをしている中で色々なところで見かけていましたが、いつも本当にありがとうございます。

おっしゃる通りで動作に影響がないわけではなくpromiseオブジェクトをreturnしなければ処理を待たずに画面遷移してしまいエラーになりそうでした。return eventで特に問題が発生することがないなら書いておくのをクセにしたいです。

 

他の方にもよろしければご意見聞いてみたいのでぜひコメントいただけますと幸いです。

0
サインインしてコメントを残してください。