javascript - Get promise value - 如何从异步调用中返回响应?

XMLHttpRequest response / 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);
    }
});