未使用javascript将Facebook值从一个函数传递到另一个函数
我有以下javascript:未使用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)
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的回调中执行所需的处理