回答編集履歴
1
追記
test
CHANGED
@@ -1,5 +1,27 @@
|
|
1
|
-
|
1
|
+
`XMLHttpRequest.open()`の第3引数に`true`を渡しているので、操作は非同期になります。
|
2
2
|
|
3
|
+
非同期処理のため`req.onload`にコールバック関数をセットしていますが、
|
4
|
+
|
3
|
-
そのコールバック
|
5
|
+
そのコールバックはいつ呼ばれるかわからない状態ですよね。
|
4
6
|
|
5
7
|
つまり、まだデータがロードされていない(したがって`req.onload`にセットしたコールバック関数が実行されていない)かもしれない時点で、`console.log(result)` を実行していることになります。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
コールバック関数の実行が完了するまで待つか、さもなくば、まずは同期処理にして`XMLHttpRequest.responseText`を参照するといいのではないでしょうか?
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
下記ドキュメントを参照してください。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
[XMLHttpRequest - Web API | MDN](https://developer.mozilla.org/ja/docs/Web/API/XMLHttpRequest)
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
あと、余談になりますが、XMLHttpRequestも使えますが非推奨になっています。
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
[まだXMLHttpRequestを使ってるの? fetchのすすめ - Qiita](https://qiita.com/uhyo/items/91649e260165b35fecd7)
|