質問: value; }).catch(function onRejected(error){ console.log(error); }); ``` プログラミング初心者で、自信が無く、 これがスマートな方法なのかが気になって質問しました。 よければ回答をお願いします。
回答: promise内での計算値(result, AJAXの取得値など)を他モジュール(DOM操作とか)で利用したい、ということだと思います. グローバル変数の危険さ、タイミング調整の難しさを考慮すると、then内で完結するように書くのが望ましいです. resultを使った処理中に起こるエラーもcatch内で処理できるようになるので、処理が一箇所にまとまって幸福度が高くなります. ``` // ----otherModule.js---- OtherModule.otherModuleFunction1_UseTaskB_Result = function(result) { // がんばってresultを使う処理部分を固めて、モジュール化します // taskBの計算値を引数経由で渡すと安全です }; OtherModule.otherModuleFunction2_UseTaskB_Result = function(result){ // 適度に分割 } // ----promiseHandle.js---- aPromise.then(function taskA(resolvedValue){ // task A ~何らかの処理~ return doSomething1(resolvedValue); }).then(function taskB(valueFromTaskA){ var result = doSomething2(valueFromTaskA); OtherModule.otherModuleFunction1_UseTaskB_Result(result); OtherModule.otherModuleFunction2_UseTaskB_Result(result); }).catch(function onRejected(error){ console.log(error); }); ``` 複数のPromiseを使う場合は、全員の完了を待ち合わせをするPromise.allも併用するといい感じに実現できると思います.