0

以下のコードを参照してください。リクエストが送信されて正常に戻ってくると、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);
4

1 に答える 1