javascript await 止まらない - 非同期呼び出しのレスポンスを返すにはどうしたらいいですか?

Async/await TypeScript / javascript / jquery / ajax / asynchronous

非同期リクエストを行う関数 foo があります。 foo から応答/結果を返すにはどうすればよいですか?

function foo() {
    var result;

    $.ajax({
        url: '...',
        success: function(response) {
            result = response;
            //応答を返します; // <-私もそれを試しました
        }
    });

    return result; //常に `undefined`を返します
}

node.jsの使用例:

function foo() {
    var result;

    fs.readFile("path/to/file", function(err, data) {
        result = data;
        //データを返します; // <-私もそれを試しました
    });

    return result; //常に `undefined`を返します
}
function foo() {
    var result;

    fetch(url).then(function(response) {
        result = response;
        //応答を返します; // <-私もそれを試しました
    });

    return result; //常に `undefined`を返します
}

charlietfl



Answer #1

それは

function handleData( responseData ) {

    //データを使ってやりたいことをする
    console.log(responseData);
}

$.ajax({
    url: "hi.php",
    ...
    success: function ( data, status, XHR ) {
        handleData(data);
    }
});