Lightning ComponentのApex側とデータ通信にPromiseを活用しよう

Lightning Componentには、サーバ側との各データ通信がすべて非同期式で行われています、サーバ側アクションが完了したときに、設定したコールバックがコールされます。サーバ側アクションからJSON形式のオブジェクト、例えばsObjectやマップなどのデータが返されます。

次のサンプルコードがLightning Componentにサーバ側データ通信方法を示します。

SampleAura.cmp

SampleAuraController.js

SampleAuraController.cls

複数のリクエストが発生する場合には、複数のアクション及びそれに対するコールバック関数を定義する必要です、そしてソースコードは以下のように読みにくくなってしまいます。

SampleAuraController.js

JavascriptのPromiseを活用して上記のような”コールバック地獄“が回避策としてよく考えられます、幸いLightning CompoenentにもPromiseが利用できますので、次のように変わります。

SampleAuraController.js

SampleAuraHelper.js

これでソースコードがより読みやすく、より簡潔となるではないでしょうか?

JavascriptのPromiseに関してもっと知りたいであれば以下ご参照ください。
https://developers.google.com/web/fundamentals/primers/promises?hl=ja
http://azu.github.io/promises-book/

Enjoy it!