This question already has answers here:
Variable doesn't get returned from AJAX function
                                
                                    (2个答案)
                                
                        
                                6年前关闭。
            
                    
我有功能:

function test(){
   $.post('data.php', function(val){
       return val;
   })

   return 'error';
}


我简单地使用它:

console.log(test());


发布正在执行-返回良好的值,但功能测试返回“错误”而不是data.php的值。
可以从$ .post获得价值吗?如果是,怎么办?

最佳答案

该函数在发布完成之前返回“错误”,因为发布是异步的。尝试使用回调。像这样:

function test(callback) {
    $.post('data.php', function(val){
        callback(val);
    })
    .fail(function() {
        callback('error');
    });
}

function log(message) {
    console.log(message);
}

test(log);

10-05 20:35
查看更多