使用javascript, Facebook值不会从一个函数传递到另一个函数
Facebook values not being passed from one function to the other using javascript
我有以下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];
});
});
}
基于以下代码:
http://thinkdiff.net/facebook/new-javascript-sdk-oauth-2-0-based-fbconnect-tutorial/问题是,当函数graphStreamPublish()运行时,它反过来也执行fqlQuery,现在graphStreamPublish中返回的值在控制台中显示为未定义。请任何人帮助我从fqlQuery返回到graphStreamPublish的值。
请注意,当我在函数fqlQuery中console.log(行)时,肯定有从FB返回的值。
谢谢
你不能这样做。你在做:
var x = fqlQuery();
但是fqlQuery没有返回任何东西。你的返回语句在回调中,这是一个完全不同的方法:
function(rows) {
var x=rows[0].name;
var y=rows[0].profile_url;
return [x, y];
}
这就是为什么你的方法返回是未定义的。在调用fqlQuery()和调用回调之间会经过一段时间。您必须在fqlQuery
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 我可以在json对象中添加一个函数吗
- Javascript使函数一个接一个地执行
- 是JavaScript中的函数一个对象
- 两个几乎相等的jQuery函数;一个适用于IE,一个不适用于IE
- 两个Javascript函数一个window.onload=Custom.init;和一个window.onload=f
- 使javascript加载函数一个接一个地执行
- 如何通过两个嵌套的匿名函数(一个带有超时的事件处理程序)传递变量
- 为什么我不能让两个jQuery函数一个在另一个里面呢?
- 给函数一个变量名,而不是它的值
- 如何使用嵌入函数(一个滚动页由Pete - peachananr)
- 是否有可能给JavaScript函数一个类型/类?
- 确保两个函数一个接一个地执行,其中第一个函数内部有一个异步调用
- 两个不同的ajax函数一个接一个调用返回相同的值
- jQuery第一次更改函数一个工作
- 给这个函数一个id
- 如何给回调函数一个值一个变量在特定时刻
- 使用回调使两个函数一个接一个地运行
- 两个函数(一个用php)是否可以用“;onclick”;
- 两个几乎相同的函数.一个函数用Queue进行排队.Jquery效果在queued函数上不起作用.为什么