質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

同期

複数のディレクトリに存在するファイルを更新した場合に、すべてのファイルにも更新が行われる事、又は、同じ記憶領域に同時にアクセスして内容の整合性が失われてしまう事をを防ぐ制御などを同期と呼びます。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

Q&A

解決済

1回答

1467閲覧

javascriptにおいて複数の関数の実行順序を指定したいです

aygakusei

総合スコア13

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

同期

複数のディレクトリに存在するファイルを更新した場合に、すべてのファイルにも更新が行われる事、又は、同じ記憶領域に同時にアクセスして内容の整合性が失われてしまう事をを防ぐ制御などを同期と呼びます。

非同期処理

非同期処理とは一部のコードを別々のスレッドで実行させる手法です。アプリケーションのパフォーマンスを向上させる目的でこの手法を用います。

0グッド

0クリップ

投稿2019/01/25 20:56

前提・実現したいこと

javascriptでサーバー上のエクセルファイルからデータを読み込みHTMLに表示するシステムを作成しています.

発生している問題・エラーメッセージ

発生している問題として,自身が意図していない順序で実行されてしまいます. 理想としては,下のソースコードの場合 getCSV関数内で呼び出される処理Aの後に必ず処理Bが実行され,処理Bの後に処理Cが実行されるという順序で処理を行いたいです.

該当のソースコード

javascript

1 2//CSVファイルを読み込む関数getCSV()の定義 3function getCSV(){ 4 var req = new XMLHttpRequest(); // HTTPでファイルを読み込むためのXMLHttpRrequestオブジェクトを生成 5 req.open("get", "test.csv", true); // アクセスするファイルを指定 6 req.send(null); // HTTPリクエストの発行 7 8 // レスポンス 9 req.onload = function(){ 10 funcA(); 11 } 12} 13 14function funcA(){ 15 処理A 16} 17 18//結果を表示する機能 19function funcB(){ 20 処理B 21} 22 23function funcC(){ 24 処理C 25} 26 27getCSV(); //最初に実行されcsvを読み取り連想配列にする. 28funcB(); 29funcC(); 30

試したこと

callback();やwhen.doneを試してみましたが,処理の順番が変わりませんでした.

補足情報(FW/ツールのバージョンなど)

googleChoromeで動作を確認しています.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

コールバックの中から呼ぶ、というのがいちばん素直な手段です。

javascript

1 req.onload = function(){ 2 funcA(); 3 funcB(); 4 funcC(); 5 } 6

投稿2019/01/25 22:05

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aygakusei

2019/01/26 06:20

ありがとうございます!無事動作しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問