質問: function(){ //表示 showMessage("処理中完了"); //タイマオブジェクト解放 clearInterval(objTimer); } ```
回答: 求めている回答が、Javascriptの非同期に行われる処理を同期で行い処理の順番を保証したいということであれば **promise** を使用するのが良いのではないでしょうか? 従来のJavascriptの文法ではコールバックという書き方も用いて処理の同期性を表現していましたが より階層が深くなりすぎない文法が規定されました。 Qiita - Promise再入門1 ~Promise基本編~ サンプルとして以下のコードを示します。 メッセージ表示に関しては console.logで代用してます。 ``` const aryData = [1,2,3,4,5,6,7,8,9,10]; let result = 0; const func1 = function() { return new Promise( function(resolve) { aryData.forEach(function(v) { window.setTimeout(function() { console.log('処理中です ' + result + ' + ' + v); result = result + v; }, 1000); }); resolve(result); }); }; const func2 = function() { return new Promise((resolve) => { window.setTimeout(function() { console.log('計算結果は ' + result + ' です'); }, 1000); resolve(result); }); }; func1() .then(func2) .then((result) => { }) .catch((e) => { console.log(e); }); ```