Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未使用javascript将Facebook值从一个函数传递到另一个函数_Javascript_Arrays_Facebook - Fatal编程技术网

未使用javascript将Facebook值从一个函数传递到另一个函数

未使用javascript将Facebook值从一个函数传递到另一个函数,javascript,arrays,facebook,Javascript,Arrays,Facebook,我有以下javascript: function graphStreamPublish(){ FB.api('/me/feed', 'post', { message : "1", link : "2", picture : "3", name : "4", description : "5" }, function(response)

我有以下javascript:

function graphStreamPublish(){
    FB.api('/me/feed', 'post', 
    {
        message     : "1",
        link        : "2",
        picture     : "3",
        name        : "4",
        description : "5"
    }, 
    function(response) {        
        if (!response || response.error){
            alert('Error occured');
        }else{
            var x = fqlQuery();
            console.log(x);
            alert('Post ID: ' + response.id);
        }
    });
}

function fqlQuery(){
    FB.api('/me', function(response) {
        var query = FB.Data.query('select name, profile_url from user where uid={0}', response.id);
        query.wait(function(rows) {
            var x=rows[0].name;
            var y=rows[0].profile_url;
            return [x, y]; 
         });
    });
}
它基于以下代码:

问题是,当函数graphStreamPublish()运行时,它也会执行fqlQuery,现在graphStreamPublish中返回的值在控制台中显示为未定义。请任何人帮助我将fqlQuery中的值返回到graphStreamPublish

请注意,当我在函数fqlQuery中输入console.log(行)时,肯定有一些值是从FB返回的


谢谢,你不能这样做。你正在做:

var x = fqlQuery();
但是fqlQuery没有返回任何内容。您的return语句位于回调中,这是一种完全不同的方法:

function(rows) {
   var x=rows[0].name;
   var y=rows[0].profile_url;
   return [x, y]; 
}
这就是方法返回未定义的原因。在调用fqlQuery()和调用回调之间会经过一段时间。您必须在fqlQuery的回调中执行所需的处理