从post函数返回值

时间:2013-11-26 20:34:50

标签: javascript php jquery

我有功能:

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

   return 'error';
}

我简单地使用它:

console.log(test());

帖子正在做 - 返回好的值,但是函数测试返回'错误'而不是data.php中的值。 可以从$ .post获得价值吗?如果是,怎么样?

4 个答案:

答案 0 :(得分:4)

return语句不会将函数冒泡到全局范围,如果仔细观察,可以看到return val存在于自己的函数中。

除此之外,该功能不会同步执行,因此在执行之前永远不会有机会返回。

因此,您需要传入回调或使用promises模式。谷歌搜索这些单词将为您找到关于它们的丰富信息。

答案 1 :(得分:0)

使用promises来处理错误。你的代码返回'错误'将在post方法回调之前被调用。

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


}

答案 2 :(得分:0)

试试这个

function test(callback){
   $.post('data.php', function(val){
       if(typeof callback == 'function') callback(val);
   })
}

打电话
test(function(val){ console.log(val) });

答案 3 :(得分:0)

该函数在帖子结束前返回'error',因为post是异步的。尝试使用回调。像这样:

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

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

test(log);