JavaScriptで処理実行を待機させる方法を現役エンジニアが解説【初心者向け】

初心者向けにJavaScriptで処理実行を待機させる方法について現役エンジニアが解説しています。JavaScriptはシングルスレッドで上から順番に処理していきますが、setTimeoutやPromiseメソッドを利用すると処理の順番を制御することが出来ます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

JavaScriptでの戻るボタンの操作方法について解説します。

実際のコードをもとに解説していきますので、理解を深めていきましょう。

また、入門向けのJavaScriptを学習できるサイトも紹介しているので、合わせてご覧ください。

 

なお本記事は、オンラインブートキャンプ フロントエンドコース(JavaScript・jQuery講座)の内容をもとにしています。

 

 

田島悠介

今回は、JavaScriptに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

JavaScriptで処理実行を待機させる方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

JavaScriptの処理実行の原則

JavaScriptでの処理実行の原則として、シングルスレッドとして処理していきます。
なので実行順序の基本としては、コードの上から順に実行していきます。

JavaScriptの実行順序
 

var result = '処理順1';
console.log(result);
result = '処理順2';
console.log(result);
result = '処理順3';
console.log(result);

//Console
//処理順1
//処理順2
//処理順3

 

処理実行を待機させる方法

処理実行を待機させる(処理順を制御する)方法はいくつかありますが、今回はsetTimeoutを使用して処理実行を待機させてみたいと思います。

setTimeout構文
 

var timeoutID = scope.setTimeout(function[, delay]);

 
function:タイマーが満了した後に実行したい関数。
delay:タイマーの時間を指定します。単位としてはミリ秒(1/1000 秒)を指定します。
 

[PR] JavaScript・jQueryで挫折しない学習方法を動画で公開中

実際に書いてみよう

例1:JavaScript

var result = '処理順1';
console.log(result);

var timeID = setTimeout(function(){
result = '5秒後に実行、処理順2';
console.log(result);
},5000);

result = '処理順3';
console.log(result);

 

実行結果

Console
処理順1
処理順3
処理順2

 

例2:JavaScript

var result = '処理順1';

var timeID = setTimeout(function(){
console.log(result);
result = '3秒後に、処理順1';
},3000);

result = '処理順2';
console.log(result);
result = '処理順3';
console.log(result);

 

実行結果

Console
処理順2
処理順3
処理順1

処理順の制御として、今回はsetTimeoutを使用しましたが、setTimeoutを多用するとコードが煩雑になり可読性が低くなってしまいます。

細かな処理順の制御を多用する場合は、Promiseを用いると制御処理をスッキリと書くことができます。
 

筆者プロフィール

この記事を監修してくれた方

水野大輝(みずのたいき)
2014年より、某物流会社のシステム開発担当として入社。

未経験ながら、社内システム保守~新規受注システム開発まで携わり、JavaScript Ruby on Rails PostgreSQLなどの経験を積む。
現在も、開発案件に携わりながら、日々勉強中。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

また、TechAcademyではJavaScriptを使ってWebサービスを公開できるオンラインブートキャンプ フロントエンドコース(JavaScript・jQuery講座)を開催しています。

プログラミングの初心者でも受講可能です。Webサイトの表現の幅を広げたいという方はぜひご覧ください。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。