以下のコードを参照してください。リクエストが送信されて正常に戻ってくると、reqListener()
関数でテキスト ファイル出力の内容を取得します。
ただし、後で応答変数を返そうとすると、reqListener()
まだ呼び出されていないかのように、まだ定義されていません。async=true
これは議論のせいでしょうか?
さらに、クロージャーを使用するなど、リクエストが成功した場合に関数からレスポンス テキストを取得するためのより適切な方法はありますか?
function load_text_file()
{
function reqListener() {
if (this.readyState == 4 && this.status == 200)
{
response = this.responseText;
console.log(response);
}
}
var response;
var oReq = new XMLHttpRequest();
oReq.onreadystatechange = reqListener;
oReq.open("get", "file.txt", true);
oReq.send();
return response;
}
var TEXT = load_text_file();
console.log(TEXT);